【问题标题】:SAP transaction returns more columns than requiredSAP 事务返回的列多于所需列
【发布时间】:2014-11-09 20:54:23
【问题描述】:

当我运行一些 SAP 事务时,例如MB51 Material document list 我可以指定一些条件,过滤和减少事务返回的记录数。 (日期、材料等)我可以指定或过滤仅通过选择布局返回的列。

然后需要相对较长的时间来获取所需的记录,例如MB51 交易。但是,当我在屏幕上显示结果集并且更改布局并包含其他列时,事务不会重新运行:而是立即显示列值。我想无论选择的布局如何,都会返回所有列值。

由于通常有大量列不提供任何有趣的数据,因此会显着降低某些 SAP 事务的性能。

我只有普通用户可以访问 SAP 安装,并且没有使用 ABAP 或在 SAP 中创建自定义事务的经验。所以我只需要坚持标准交易。

这种行为是 SAP 的正常问题还是我们安装的问题?非特权用户是否有任何解决方法来过滤返回的列?

【问题讨论】:

  • 这不是问题。程序返回的列由程序本身决定。您不能从选择中删除列,只能从显示中删除它们。而且我不确定额外的列会像您想象的那样减慢交易速度。大多数时候,从一个大表中选择少数想要的记录比返回几个(甚至几百个)不需要的列要花费更多的时间。缓慢的选择通常是由于使用了未在表索引中表示的选择标准,从而导致全表扫描。您的管理员可能会在这方面为您提供帮助...
  • 据我了解,如果您想在 SAP 中快速生成只返回所需列而不返回其他任何内容的报告,您需要创建自定义事务吗?不幸的是,我没有选择很少的记录,而是选择了很多记录进行进一步分析。
  • 有 SAP Query 如果你想对查询和返回的内容有一些影响,你可以用它创建你自己的自定义查询,提供一些数据库知识。但标准 SAP 事务不能以这种方式修改。他们通常会获取所有数据并显示您需要的内容。
  • @DirkTrilsbeek 您的 cmets 将我视为对我问题的回答。当 SQ01 返回User vdohnal does not belong to any group 时 - 这可能意味着我不能使用 SAP Query,对吧?
  • 如果您可以调用 SQ01,那么您至少拥有执行此操作所需的 SAP 角色。 SAP Query 中的组用于将查询分组到不同的区域,以使其更易于管理。您不属于任何组(还)并不一定意味着您不能使用 SAP Query。它基本上是这样工作的:首先你创建一个信息集,它通常是你的查询所基于的数据。单表、表连接甚至是自定义的abap 程序。然后根据该信息集创建查询。您可以在同一个信息集上创建多个查询。

标签: sap-erp


【解决方案1】:

您不能像现在这样修改 SAP 标准程序以使它们返回更少的列。这意味着修改 SAP 拥有的源代码(并在此进行相当广泛的修改),这在技术上是可行的,但完全不推荐,当然也完全不受支持。

首先,报告返回的列数通常不是一个大的性能问题。在某些情况下,如果您返回非常多的行并且只需要几列,那么您可能是对的。但通常您只返回适中的行数(与表中的总行数相比适中),因此从数据库传输的实际数据并没有那么多。查询速度慢的原因有很多,例如连接几个大表或没有正确的索引来连接这些表。在这里,您的管理员可以提供帮助,他们可以使用工具来准确监控 SAP 系统在您的查询期间执行的操作,并且他们可能会找到性能低下的原因。

如果您确实需要或希望能够自己影响查询,则必须求助于 SAP Query(事务 SQ01/SQ03)等工具。 SAP Query 仅用于数据显示,您不能从那里修改数据。但是您可以创建自己的查询,提供相应的知识。您需要创建一个包含所需数据的信息集,然后在该信息集上创建一个查询(或多个查询)。在您的信息集中,您决定需要哪些表以及应该返回哪些列。然后,在您的查询中,您决定过滤查询的列以及如何显示结果。有很多关于 SAP Query (one example here) 的教程,包括一些在 youtube 上的教程。

【讨论】:

    【解决方案2】:

    您可能处于相对未更新的安装中,在这种情况下,您可能需要应用一些注意事项来提高性能。他们在 SCN here 上讨论。注意1550000 看起来最有前途。

    如果应用现有注释不能帮助解决问题,那么您应该考虑使用 SAP 打开客户消息。频繁使用的事务的性能缓慢是他们应该帮助解决的问题。

    【讨论】:

    • 这绝对很有趣,正如我所提到的,在 SAP 中我是纯粹的用户。我希望索引是基本标准安装的一部分。但是这个问题出现在更多的交易中,还有定制的交易,它们返回了 50 列包含大量无用数据的列,而我只需要其中的大约 5 个。我只是想知道这是否是 SAP 的普遍疼痛。
    • 此 SAP 说明非常具体地针对表 MSEG 和拥有大量材料文档的客户。它们有效地将表 MKPF 中的标头字段存储在位置表 MSEG 中,以便能够直接查询 MSEG,而不必连接速度慢得多的 MKPF 和 MSEG。但这对于这种情况非常具体,而不是一般的解决方案。当然 SAP 提供索引,但是每个索引都会增加系统开销,因此您应该谨慎选择要添加的索引。因此,SAP 不会仅仅因为索引可能对他们的少数客户派上用场而添加索引。
    • 如果你是一个纯粹的用户,那么你会想和你的基础/管理员讨论你遇到的问题。他们可以调查问题的可能解决方案,并将能够实施这些解决方案。
    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    相关资源
    最近更新 更多