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