SM50长时间运行工作进程的分析方法
对于SAP系统管理员来说, 通过事物代码SM50或者SM66来监视工作进程(work process)的运行应该是日常工作中不可或缺的部分。有时,大家可能会发现一些工作进程运行了很长时间但是状态一直没有改变,到底他们在做什么呢?这次将以ORACLE数据库为例, 为大家介绍针对此类问题的分析方法。
众所周知, SAP系统是由表现层(Presentation Layer), 应用层(Application Level)和数据库层(Database Level)三层构架系统构成。其中应用层和数据库层是通过进程或者线程进行连接, 也就是说每个SM50或者SM66里的工作进程都会对应一个数据库的进程或者线程(根据数据库的不同而不同)。接下来的例子将会示范怎样通过SM50或者SM66中的工作进程来查找与之对应的数据库进程或线程, 从而发现它在数据库上执行的具体内容。
首先, 我们在SM50中选取一个工作进程, 从中可以看到它的Process PID是15604, Status是Running

然后, 我们可以用事物代码DBACOCKPIT → Performance → Wait Event Analysis → Session Monitor来查看数据库上的执行情况。我们可以通过Client Proc的号码15604来确认它就是我们要找的数据库进程。从Status是ACTIVE可以看出,这个数据库进程正在工作。

接下来,双击这条记录, 可以发现更详细的信息如下:

点击上图中的“Explain”可以查看这条SQL文的执行计划来做进一步的分析

有时我们会发现在Session Monitor里面并没有我们要找的数据库进程,我们可以通过事物代码DBACOCKPIT → Set Selection Criteria → All Sessions来显示所有进程。如下图所示, 它的Status是INACTIVE, 这表示数据库层面当时并没有工作, 而是正在进行SAP层面的处理。

wechat: ywkonline
专注于SAP运维、升级、迁移
出处:http://www.cnblogs.com/weikui/
浙公网安备 33010602011771号