收集關於回應緩慢的問題回饋。
提供執行細節:執行次數、讀取磁碟與緩衝區次數。
| 欄位 | 說明 |
|---|---|
| EXECUTIONS | 執行次數 |
| DISK_READS | 讀盤次數 |
| COMMAND_TYPE | 命令型別(3:SELECT, 2:INSERT, 6:UPDATE, 7:DELETE, 47:PL/SQL 程式單元) |
| OPTIMIZER_MODE | 優化方式 |
| SQL_TEXT | SQL 陳述式 |
| SHARABLE_MEM | 佔用 shared pool 記憶體大小 |
| BUFFER_GETS | 讀取緩衝區次數 |
用途:找出效能較差的 SQL、最高頻率的 SQL、分析是否需索引或改善聯結。
若出現時鐘圖示,表示該程序中 SQL 執行時間較長。
timed_statistics、user_dump_dest、max_dump_file_size。ALTER SESSION SET SQL_TRACE=TRUEALTER SESSION SET SQL_TRACE=FALSETKPROF 轉換追蹤檔案TKPROF 分析重點:
| 參數值 | 說明 |
|---|---|
| CHOOSE | 若存在任何存取過資料表的統計資料,使用成本基礎優化器(CBO),目標為最佳吞吐量;若部分資料表無統計資料,使用估計值;若無可用統計資料,使用規則基礎優化器(RBO) |
| ALL_ROWS | 總是使用 CBO,目標為最佳吞吐量 |
| FIRST_ROWS_n | 總是使用 CBO,目標為前 N 列(n=1,10,100,1000)最佳回應時間 |
| FIRST_ROWS | 向後相容,結合成本與試探方法快速傳遞前幾列 |
| RULE | 總是使用 RBO |
A. 建立 Explain Plan 表:@ORACLE_HOME/rdbms/admin/utlxplan.sql
B. 表結構:STATEMENT_ID、OPERATION、OPTION、OBJECT_OWNER、OBJECT_NAME、OBJECT_TYPE、ID、PARENT_ID
C. 執行計畫解讀:
使用步驟:
@ORACLE_HOME/sqlplus/admin/plustrce.sqlGRANT PLUSTRACE TO <user>選項:
SET AUTOTRACE ON:顯示查詢結果、執行計畫、統計資料ON STATISTICS:顯示查詢結果、統計資料,不顯示執行計畫ON EXPLAIN:顯示查詢結果、執行計畫,不顯示統計資料TRACEONLY:顯示執行計畫和統計結果,不含查詢結果關鍵統計指標:recursive calls、db block gets、consistent gets、physical reads、redo size、bytes sent/received via SQL*Net、SQL*Net roundtrips、sorts (memory/disk)、rows processed
SET TIMING ON