[20111220]Capturing 10053 trace files.txt

lfree發表於2011-12-20
[20111220]Capturing 10053 trace files.txt

oracle 要抓取10053事件資訊,執行的sql語句一定要硬分析:

有時候不小心忘記了這個要求,導致沒有抓取執行計劃。

在11G的DBMS_SQLDIAG包包含一個DUMP_TRACE過程,而且這個過程自動觸發一個硬分析,生成跟蹤檔案。

例子:

1.執行sql獲取sql_id
SQL> select count(*) from emp;
  COUNT(*)
----------
        14

SQL> select * from table(dbms_xplan.display_cursor(NULL,NULL,'ALLSTATS LAST PEEKED_BINDS');
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  g59vz2u4cu404, child number 0
-------------------------------------
select count(*) from emp
Plan hash value: 2937609675
--------------------------------------------
| Id  | Operation        | Name   | E-Rows |
--------------------------------------------
|   0 | SELECT STATEMENT |        |        |
|   1 |  SORT AGGREGATE  |        |      1 |
|   2 |   INDEX FULL SCAN| PK_EMP |     14 |
--------------------------------------------
Note
-----
   - Warning: basic plan statistics not available. These are only collected when:
       * hint 'gather_plan_statistics' is used for the statement or
       * parameter 'statistics_level' is set to 'ALL', at session or system level

2.獲取sql_id='g59vz2u4cu404'

SQL> begin
     DBMS_SQLDIAG.DUMP_TRACE(p_sql_id=>'g59vz2u4cu404', p_child_number=>0, p_component=>'Compiler', p_file_id=>'t10053');
end;
/

3.檢視檔案:
$ ls -l  test_ora_5327_t10053.trc
-rw-r----- 1 oracle oinstall 68474 Dec 20 15:32 test_ora_5327_t10053.trc

看見前面的sql如下:

/* SQL Analyze(145,0) */ select count(*) from emp

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-713624/,如需轉載,請註明出處,否則將追究法律責任。

相關文章