我假设我有一个需要很长时间运行的 ABAP 程序。所以我想检查程序此刻正在做什么,正在执行哪一行代码或程序在那个确切时刻正在写入哪些表。
我认为有一个事务可以检查正在运行的程序。我对吗 ?如果我是那是什么?
您要做的是转到流程概述。
事务 SM66 显示当前系统的所有活动进程。如果您有多个应用程序服务器,这将特别有用。
SM50 将显示您当前登录的应用服务器的所有进程。要查看可用的应用程序服务器,请转到 SM51。
从流程概览(在 SM66 中)中,您可以单击流程并单击“调试”按钮。
同样,从SM50,您可以Administration -> Program -> Debugging
从菜单中选择调试程序。
您可以从流程概览中项目的详细信息中识别程序正在执行的流程。
如果您能够使用有限的数据集测试您的程序,您可能想做的另一件事是通过运行时分析(事务 SE30,或较新系统中的 SAT)运行它。这将使您能够更轻松地识别处理中的瓶颈。
SM50
您可以使用概览在相当有限的范围内检查 ABAP 流程的状态。如果程序在后台进程中运行(并且您具有适当的权限),则可以从 transaction 调试后台作业SM37
。
如果您特别关注 DB 访问,您可以使用事务 ST05 来启动 SQL 跟踪。当您显示跟踪时,它将显示执行的 SQL 语句并提供有关它们的一些信息,例如花费了多长时间、返回了多少记录以及使用了哪些索引。它还允许您查看语句在源代码中的调用位置。
ST05 是系统范围的跟踪,但您可以按用户名/事务/程序/表过滤跟踪以缩小结果范围。另请注意,一次只能运行一个跟踪系统,因此请务必在完成后将其关闭,以便下一个人可以使用它。