racle Trace 10046简单范例

1. 环境: oracle 10.2.0.4

2. 测试场景: 通过weblogic提供的数据源连接数据库

   1)weblogic中建立数据源时,初始设定一个连接,以方便确认执行过程中,所产生的trace文件。

   2)确认trace文件生成的路径:

SQL> show parameter user_dump_dest

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

user_dump_dest                       string      /oracle/admin/jf/udump

SQL> show parameter background_dump_dest

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

background_dump_dest                 string      /oracle/admin/jf/bdump

3)确认用户id

Toad中执行:

SELECT SID, SERIAL#, USER#, USERNAME, STATUS

  FROM V$SESSION T

 WHERE  MACHINE LIKE '本机机器名%';

目前:本机连接数据库有toad连接和Weblogic建立的数据源连接,故返回两条记录,其中Weblogic建立的数据源连接显示statusINACTIVE

记录该笔资料的SIDSERIAL#

4)使用sys用户开启Trace

execdbms_monitor.session_trace_enable(93,18096,true,true);;sid:93;serial: 18096

PL/SQL procedure successfully completed.

5)进入trace文件的存放路径,此时并未发现今日生成的.trc文件

ls –lrt *

         6)当通过应用程序发生了数据库操作后,查看/oracle/admin/jf/udump目录下生成了jf_ora_8182.trc文件【通过文件生成的时间判断】

         7)通过tkprof命令转化trace文件为txt格式

[200.14]/oracle/admin/jf/udump>tkprof jf_ora_8182.trc/home/bea/app/lihailong/8023_new_03.txt explain=userName/pwdaggregate=no sys=no waits=no;

         8)关闭trace跟踪

SQL> exec dbms_monitor.session_trace_disable(93,18096);

         9)应用程序再发生了数据库操作后,jf_ora_8182.trc文件将不再发生变化。

    10)生成8023_new_03.txt的部分内容:

SELECT BYDATE,OPERATE_ID,SUM(OPERATE_POINT) OPERATE_POINT

FROM

 (SELECT  SUBSTR(A.CREATE_TIME,0,6) BYDATE,A.OPERATE_ID OPERATE_ID,

  TO_NUMBER(A.OPERATE_POINT) OPERATE_POINT FROM BE_POINT_DETAIL A ,be_purse B

  WHERE A.PURSE_ID=B.PURSE_ID AND   ( a.customer_id = :1 or a.customer_id =

  :2 )AND A.CREATE_TIME >= :3 AND B.PURSE_TYPE_ID != '3' AND

  B.PURSE_PROCESS_TYPE = '1' ) GROUP BY BYDATE,OPERATE_ID ORDER BY BYDATE

  DESC

 

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        4      0.01       0.00          0        546          0          30

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        6      0.01       0.01          0        546          0          30

 

Misses in library cache during parse: 1

Misses in library cache during execute: 1

Optimizer mode: ALL_ROWS

Parsing user id: 31  (JF_ISU)

 

Rows     Execution Plan

-------  ---------------------------------------------------

      0  SELECT STATEMENT   MODE: ALL_ROWS

      0   SORT (GROUP BY)

      0    NESTED LOOPS

      0     INLIST ITERATOR

      0      TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF

                 'BE_POINT_DETAIL' (TABLE)

      0       INDEX   MODE: ANALYZED (RANGE SCAN) OF

                  'IDX_BE_POINT_DETAIL' (INDEX)

      0     TABLE ACCESS   MODE: ANALYZED (BY INDEX ROWID) OF 'BE_PURSE'

                (TABLE)

      0      INDEX   MODE: ANALYZED (UNIQUE SCAN) OF 'PK_BE_PURSE'

                 (INDEX (UNIQUE))

 

 

Elapsed times include waiting on following events:

  Event waited on                             Times   Max. Wait  Total Waited

  ----------------------------------------   Waited  ----------  ------------

  SQL*Net message to client                       5        0.00          0.00

  SQL*Net message from client                     5        0.01          0.04

3.测试场景: 开发过程中,通过Toad工具连接数据库后,测试某SQL语句的执行情况

   1) toadSQL窗口中,执行如下语句:

    开启Trace跟踪: ALTER SESSION SET EVENTS '10046 trace name context forever, level 12';

    关闭Trace 跟踪:ALTER SESSION SET EVENTS '10046 trace name context off';

   2) 开启Trace后,在/oracle/admin/jf/udump目录下存在jf_ora_13297.trc文件

   3) 通过toad执行【同场景1step10SQL

SELECT   bydate, operate_id, SUM (operate_point) operate_point

    FROM (SELECT SUBSTR (a.create_time, 0, 6) bydate, a.operate_id operate_id,

                 TO_NUMBER (a.operate_point) operate_point

            FROM be_point_detail a, be_purse b

           WHERE a.purse_id = b.purse_id

             AND (a.customer_id = :1 OR a.customer_id = :2)

             AND a.create_time >= :3

             AND b.purse_type_id != '3'

             AND b.purse_process_type = '1')

GROUP BY bydate, operate_id

ORDER BY bydate DESC

  4) 多次执行SQL后,通过tkprof产生如下内容:

 

SELECT   bydate, operate_id, SUM (operate_point) operate_point

    FROM (SELECT SUBSTR (a.create_time, 0, 6) bydate, a.operate_id operate_id,

                 TO_NUMBER (a.operate_point) operate_point

            FROM be_point_detail a, be_purse b

           WHERE a.purse_id = b.purse_id

             AND (a.customer_id = :1 OR a.customer_id = :2)

             AND a.create_time >= :3

             AND b.purse_type_id != '3'

             AND b.purse_process_type = '1')

GROUP BY bydate, operate_id

ORDER BY bydate DESC

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        1      0.61      72.67       6742      12092          0           8

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        3      0.61      72.67       6742      12092          0           8

 

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: 31 

 

Rows     Row Source Operation

-------  ---------------------------------------------------

      8  SORT GROUP BY (cr=12092 pr=6742 pw=0 time=72671905 us)

   7989   HASH JOIN  (cr=12092 pr=6742 pw=0 time=14807759 us)

     85    TABLE ACCESS FULL BE_PURSE (cr=7 pr=0 pw=0 time=180 us)

   7989    INLIST ITERATOR  (cr=12085 pr=6742 pw=0 time=14790792 us)

   7989     TABLE ACCESS BY INDEX ROWID BE_POINT_DETAIL (cr=12085 pr=6742 pw=0 time=14789762 us)

  42231      INDEX RANGE SCAN IDX_BE_POINT_DETAIL (cr=269 pr=152 pw=0 time=49272 us)(object id 26977)

 

 

Elapsed times include waiting on following events:

  Event waited on                             Times   Max. Wait  Total Waited

  ----------------------------------------   Waited  ----------  ------------

  SQL*Net message to client                       2        0.00          0.00

  SQL*Net message from client                     2       17.44         17.44

  db file sequential read                      6742        0.12         72.20

        

 

SELECT   bydate, operate_id, SUM (operate_point) operate_point

    FROM (SELECT SUBSTR (a.create_time, 0, 6) bydate, a.operate_id operate_id,

                 TO_NUMBER (a.operate_point) operate_point

            FROM be_point_detail a, be_purse b

           WHERE a.purse_id = b.purse_id

             AND (a.customer_id = :1 OR a.customer_id = :2)

             AND a.create_time >= :3

             AND b.purse_type_id != '3'

             AND b.purse_process_type = '1')

GROUP BY bydate, operate_id

ORDER BY bydate DESC

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        1      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        1      0.15       0.15          0      12092          0           8

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        3      0.15       0.15          0      12092          0           8

 

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: 31 

 

Rows     Row Source Operation

-------  ---------------------------------------------------

      8  SORT GROUP BY (cr=12092 pr=0 pw=0 time=151202 us)

   7989   HASH JOIN  (cr=12092 pr=0 pw=0 time=86769 us)

     85    TABLE ACCESS FULL BE_PURSE (cr=7 pr=0 pw=0 time=187 us)

   7989    INLIST ITERATOR  (cr=12085 pr=0 pw=0 time=69778 us)

   7989     TABLE ACCESS BY INDEX ROWID BE_POINT_DETAIL (cr=12085 pr=0 pw=0 time=69809 us)

  42231      INDEX RANGE SCAN IDX_BE_POINT_DETAIL (cr=269 pr=0 pw=0 time=104 us)(object id 26977)

 

 

Elapsed times include waiting on following events:

  Event waited on                             Times   Max. Wait  Total Waited

  ----------------------------------------   Waited  ----------  ------------

  SQL*Net message to client                       2        0.00          0.00

  SQL*Net message from client                     2        2.31          2.31

 

你可能感兴趣的:(Trac)