1. 程式人生 > >sql調優第一步explain plan執行計劃

sql調優第一步explain plan執行計劃

explain plan  是sql的執行計劃  。如果一條sql平時執行的好好的,有一天突然變得很差,如果排除系統資源和阻塞的原因,基本可以斷定是執行計劃出現了問題。

執行計劃可以定位sql效能的問題。





2.使用sql語句

EXPLAIN PLAN FOR SELECT * FROM DAVE;

SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));

或者    

select * from table(dbms_xplan.display);


欄位解釋

    ID:一個序號,不是執行的先後順序,執行先後根據縮排判斷

    Operation:當前操作的內容

    Rows:當前操作的Cardinality,Oracle估計當前操作的返回結果集

    CPU:Oracle計算出的一個數值,用於說明SQL執行的代價

    Time:估計當前操作時間

db block gets:從buffer cache中讀取的block的數量

consistent gets:從buffer cache中讀取的undo資料的block數量

physical reads:從磁碟讀取的block的數量

redo size:DML生成的redo的大小

sorts(memory):在記憶體執行的排序量

sorts(disk):在磁碟上上執行的排序量


Physical Reads通常是我們最關心的,如果這個值很高,說明要從磁碟請求大量的資料到Buffer Cache裡,通常意味著系統裡存在大量全表掃描的SQL語句,這會影響到資料庫的效能,因此儘量避免語句做全表掃描,對於全表掃描的SQL語句,建議增加相關的索引,優化SQL語句來解決