SQL效能的度量 - 語句級別的SQL跟蹤autotrace

llnnmc發表於2018-01-20

Oracle 10g之前,使用autotrace還需要建立plustrace角色,並把該角色授予所有使用者:

@?\rdbms\admin\plustrace.sql

grant plustrace to public;


Oracle 10g之後autotrace的功能增強了,並簡化了以上操作,一個autotrace就可以完成所有的輸出。


使用autotrace命令格式如下:

set autot[race] {off|on|trace[only]} [exp[lain]] [stat[istics]]


追蹤所有資訊:

set autot on


只顯示執行計劃和統計資訊而不檢視執行結果:

set autot trace exp stat


在既要顯示執行計劃又要顯示統計資訊時,也可以簡略寫為

set autot trace


此時執行一個SQL觀察輸出結果

select count(*) from scott.emp;


已用時間:  00: 00: 00.03


執行計劃

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

Plan hash value: 2937609675


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

| Id  | Operation        | Name   | Rows  | Cost (%CPU)| Time     |

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

|   0 | SELECT STATEMENT |        |     1 |     1   (0)| 00:00:01 |

|   1 |  SORT AGGREGATE  |        |     1 |            |          |

|   2 |   INDEX FULL SCAN| PK_EMP |    14 |     1   (0)| 00:00:01 |

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



統計資訊

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

          1  recursive calls

          0  db block gets

          1  consistent gets

          1  physical reads

          0  redo size

        527  bytes sent via SQL*Net to client

        520  bytes received via SQL*Net from client

          2  SQL*Net roundtrips to/from client

          0  sorts (memory)

          0  sorts (disk)

          1  rows processed


explain工具的區別是:explain僅分析語句,而autotrace無論怎樣,語句總是要被執行的。


停止追蹤時

set autot off

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

相關文章