[性能调优]如何通过读PeopleSoft Trace文件来调优
理解PeopleSoft Trace文件对于解决性能问题是绝对有必要的。你可能面临一个问题,用户抱怨性能较慢,而OEM并没有补货SQL,你有2种方法选择:使用PeopleSoft trace检查或启用数据库的跟踪来查找SQL。
你应该优先选择PeopleSoft的Trace。此外你需要了解Trace文件中的所有内容才不会感到困惑。你可以使用TraceMagic工具来分析Trace文件。
下面是如何来读取Trace 文件来识别性能瓶颈的SQL,然后再做进一步打算:
这个trace文件是8.54的
PSAPPSRV.8972 (706) 1-19753 10.45.11 0.000000 Cur#1.8972.ELM91DEV RC=0 Dur=0.000000 COM Stmt=SELECT FILL.LM_GRADE_VAL_ID,FILL.LM_GRADE_LABEL FROM PS_LM_GRD_SCH_VW FILL
下面来理解下这行日志,我们关注的部分是:
1-19753 10.45.11 0.000000 Cur#1.8972.ELM91DEV RC=0 Dur=0.000313 COM Stmt=SELECT FILL.LM_GRADE_VAL_ID,FILL.LM_GRADE_LABEL FROM PS_LM_GRD_SCH_VW FILL
第一列:1-19753 这是进程的顺序行计数器,下一行将有递增的数字。
第二列:10.45.11 这是记录跟踪行的时间戳,这个时间戳来自于用户的机器,并不是来自于数据库的时间戳。
第三列:0.000000 这是自上一条日志写进来的时间这意味1-19752之后用了0.000000秒 写了1-19753。
第四列:Cur#1 这是语句的光标号,如果您打开第二个游标,将会有一个大于1的光标号。例如:
PSAPPSRV.20822 (56) 1-54263 11.42.34 0.000195 Cur#1.20822.notSamTran RC=0 Dur=0.000002 Open Cursor Handle=0000000000AF0E10
PSAPPSRV.20822 (56) 1-54264 11.42.34 0.000009 Cur#2.20822.notSamTran RC=0 Dur=0.000002 Open Cursor Handle=0000000000AF0E10
第五列:ELM91DEV 这是API调用正在执行的PeopleSoft 实例名。
第六列:RC=0 这是API调用返回的代码。
第七列:Dur=0.000313 这个返回的时间是根据调用的不用或执行sql语句的不同返回的时间。
第八列:COM Stmt=SELECT FILL.LM_GRADE_VAL_ID,FILL.LM_GRADE_LABEL FROM PS_LM_GRD_SCH_VW FILL 这是数据库API调用。
理解trace timer 对于解决性能问题是非常有必要的。有2个主要的timers需要理解:
Dur=0.000313 这表示与SQL语句相关的API调用时间,换句话说这可能是准备或执行的时间,这是你在解决性能问题时需要考虑的时间参数,很多时间这个参数的值和CPU的值是一样的。
第二列:0.000000 前文已经说明,这是上一条跟踪被写入的时间,所以这个时间可能是下面几种:
用户在思考的时间--如果此处的值非常大,那么这一定是用户思考的时间。如果之前的行是断开连接,提交或回滚,也说说明是用户思考的时间。这个值很大的话,不用担心。
PeopleTools处理时间--这将是一个导致不会写日志的活动。这可能是在等待远程调用,或者是页面在处理,由于这些原因,这个时间可能很大,需要考虑。
SQL-可能是SQL执行的时间。
我的公众号: