[性能调优]如何通过读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执行的时间。

我的公众号:

时间: 2024-10-18 13:56:39

[性能调优]如何通过读PeopleSoft Trace文件来调优的相关文章

使用 10046 查看执行计划并读懂 trace 文件

查看 sql 执行计划的方法有许多种, 10046 事件就是其中的一种. 与其他查看 sql 执行计划不同, 当我们遇到比较复杂的 sql 语句, 我们可以通过 10046 跟踪 sql 得到执行计划中每一个步骤的逻辑读, 物理读以及花费的时间等. 这种细粒度的跟踪对于我们分析 sql 性能尤其有用. 一般来说, 使用 10046 事件得到 sql 执行计划的步骤如下: 1. 激活当前 session 10046 事件 2. 在当前 session 中执行 sql 语句 3. 关闭当前 sess

10046入门:使用 10046 查看执行计划并读懂 trace文件

************************************************************* 1.开启10046 ************************************************************* SQL> oradebug setmypid Statement processed. // 激活 10046 事件 SQL> oradebug event 10046 trace name context forever,lev

[性能调优]PeopleSoft Trace 分析工具 - TraceMagic

PeopleSoft Trace 文件包含大量的信息,在前面文章讲解过如何查看trace日志文件,这边文章介绍一个工具可以很好的分析trace日志文件. TraceMagic 是由oracle开发的一个实用工具,它给PeopleSoft管理员,开发工程师提供了快速隔离SQL语句或PeopleCode函数中的性能瓶颈的能力.他通过将基于文本的有时间顺序的tracesql文件转化为表格图形来显示,允许用户快速定位系统性能问题. TraceMagic于2012年7月发布,该工具由CoE使用Micros

SQL Server 性能调优 之执行计划(Execution Plan)调优

执行计划中的三种 Join 策略 SQL Server 存在三种 Join 策略:Hash Join,Merge Join,Nested Loop Join. Hash Join:用来处理没有排过序/没有索引的数据,它在内存中把 Join 两边数据(的关联key)分别建立一个哈希表.例如有以下的查询语句,关联的两张表没有建立索引,执行计划将显示为Hash Join. SELECT sh.* FROM SalesOrdHeaderDemo AS sh JOIN SalesOrdDetailDemo

Oracle性能分析2:trace文件解读

下面是trace文件中的一个片段,表示一个SQL执行的过程,一个trace文件由很多这样的片段组成: PARSING IN CURSOR #4 len=135 dep=1 uid=0 oct=3 lid=0 tim=777069789359 hv=1115215392 ad='33e7e384' select /*+ index(idl_char$ i_idl_char1) +*/ piece#,length,piece from idl_char$ where obj#=:1 and part

Oracle性能分析1:开启SQL跟踪和获取trace文件

当Oracle查询出现效率问题时,我们往往需要了解问题所在,这样才能针对问题给出解决方案.Oracle提供了SQL执行的trace信息,其中包含了SQL语句的文本信息,一些执行统计,处理过程中的等待,以及解析阶段(如生成执行计划)产生的信息.这些信息有助于你分解sql语句的服务时间和等待时间,并了解所用资源和同步点的详细信息,从而帮助你诊断存在的性能问题. 这篇文章介绍了怎么开启SQL跟踪和获取trace文件,详细信息如下. 开启SQL跟踪 从内部技术细节看,SQL跟踪是基于10046调试事件的

Oracle 10046 trace文件分析

生成10046 trace文件: SQL> create table t10046 as select * from dba_objects; Table created. SQL> select file_id,block_id,blocks from dba_extents where segment_name='T10046'; FILE_ID BLOCK_ID BLOCKS ---------- ---------- ---------- 1 94664 8 1 94672 8 1 9

10046 trace文件分析

SQL> create table t10046 as select * from dba_objects; Table created. SQL> select file_id,block_id,blocks from dba_extents where segment_name='T10046'; FILE_ID BLOCK_ID BLOCKS ---------- ---------- ---------- 1 94664 8 1 94672 8 1 94680 8 1 94688 8

REQUEST的TRACE文件

--REQUEST的TRACE文件 SELECT    'Trace Name: '       || DEST.VALUE       || '/'       || LOWER (DBNM.VALUE)       || '_ora_'       || ORACLE_PROCESS_ID       || '.trc',       'File Name: ' || EXECNAME.EXECUTION_FILE_NAME,       EXECNAME.SUBROUTINE_NAME