2014-06-21 Created By BaoXinjian

Form_通过Trace分析Concurrent和Form性能和异常详解(案例)一、摘要


1. 理论概念

(1). 优化器选择方式:基于Rule和基于Cost,在数据库层次进行设定

(2). 执行计划解读:解析 -> 执行 -> 提取

(3). 执行效能解析:每个动作CPU和时间,提取的次数

(4). Trace的4中方式:Trace: 常规的Trace,这种所有里面SQL的变量都被Bind Variable替代,适合性能分析;

                              Trace With Binds: 带变量值得Trace, 这种Trace的结果中带具体的值,适合问题查询;

                              Trace With Waits:

                              Trace With Binds and Waits:

(5). TkProf工具:将trc文件替换成prf文件,整理后比较容易阅读,但是SQL的执行顺序和一些信息会丢失

(6). 最终的Trace文件会呈现具体的SQL语句和每个SQL语句对应的效率如下

Form_通过Trace分析Concurrent和Form性能和异常详解(案例)

2. 并发程式Trace

(1).通过Request中enable trace去启动Trace功能;

        i. 产生的是Regular Trace,里面不带参数值

        ii.启动方式:调用Request是点击Enable选项

(2).通过Profile去启动单个用户下所有的Trace功能;

        i. 产生的是Trace With Binds,带参数

        ii.启动方式:a. Request的Trace Enable选项并无启动 

                    b. 修改这个User层级下的Profiler<Initialization SQL Statement - Custom>, 单行格式

                                                    begin

                                                        fnd_ctl.fnd_sess_ctl('', '','TRUE','TRUE','LOG','ALTER SESSION SET

                                                                                        EVENTS=''10046 TRACE NAME CONTEXT FOREVER, LEVEL 4''

                                                                                        TRACEFILE_IDENTIFIER=''<tar/bug#>''');

                                                     end;

                                    

         iii.重要的参数

            LEVEL 4 可被改为LEVEL 8 或者LEVEL 12,其意义分别如下:
            Use LEVEL 4 :以”Trace with Binds” 的方式进行Trace
            Use LEVEL 8 :以”Trace withWaits” 的方式进行Trace
            Use LEVEL 12 :以”Trace with Binds and Waits” 的方式进行Trace    

(3).通过SQL去启动所有用户下所有的Trace功能;

        i. 产生的Trace With Binds, 带参数

        ii.启动方式:a. 调用数据库系统级的Event 10046

                    b. 需要调用一段特定的SQL<bde_session_event_10046.sql>

                    c. 产生SQL之后再调用这段SQL,再关闭所有User的Trace

3. Form表单的Trace

(1). 使用诊断功能,启动Form的Trace with binds

(2). 进行具体操作时,其记录会产生至Trace文件中

(3). 产生Trace文件后,关闭Trace with binds

4. 非常重要的注意事项

当trace调试后,必须进行关闭,特别是在PROD环境,不然如果不关闭,User的任何操作系统会一直记录trace,会对服务器造成非常大的负担

之前在项目中就遇到被DBA Team抱怨,所以一个好的习惯非常重要

当然经常运行SQL去查询Concurrent Program是否启动trace选项做个后期预防也重要

 

Form_通过Trace分析Concurrent和Form性能和异常详解(案例)二、案例分析 - Concurrent Trace 分析


案例:对Invoice History Report进行Trace分析,了解其执行效率

Step1. 在并发程式设定Enable Trace为True

Form_通过Trace分析Concurrent和Form性能和异常详解(案例)

Step2. 调用该程式,并记录RequestID(5820613),并根据这个ID追踪具体阐述Trace位置

Form_通过Trace分析Concurrent和Form性能和异常详解(案例)

相关文章:

  • 2021-09-08
  • 2021-06-26
  • 2021-06-27
  • 2022-12-23
  • 2021-04-17
  • 2022-12-23
  • 2021-05-08
  • 2021-06-16
猜你喜欢
  • 2021-07-18
  • 2021-11-17
  • 2021-08-16
  • 2022-12-23
  • 2021-06-25
  • 2021-08-23
  • 2021-11-05
相关资源
相似解决方案