工作中偶爾會遇到效能不好的複雜sql語句,在定位不了問題的情況下就需要執行計畫出馬了。
執行計畫顧名思義,就是oracle內部執行sql語句的詳細計畫步驟。當然,其他資料庫比如mysql、sqlsever等也有這個概念。本文以我常用的oracle為例。
如可檢視執行計畫?其實有很多種方法。
最簡單的,用ide自帶元件,比如sql developer上的檢視執行計畫按鍵(快捷鍵f10)
稍微複雜點的,用**檢視:
explain plan for (select * from temp);--方法1
select plan_table_output from table(dbms_xplan.display('plan_table'));--方法2
sql> select * from table(dbms_xplan.display);--方法3
解讀執行計畫
join的時候,有三種方式:hash join、 merge join、nested loop
執行計畫小總結
工作中偶爾會遇到效能不好的複雜sql語句,在定位不了問題的情況下就需要執行計畫出馬了。執行計畫顧名思義,就是oracle內部執行sql語句的詳細計畫步驟。當然,其他資料庫比如mysql sqlsever等也有這個概念。本文以我常用的oracle為例。如可檢視執行計畫?其實有很多種方法。最簡單的,用i...
執行計畫小總結
工作中偶爾會遇到效能不好的複雜sql語句,在定位不了問題的情況下就需要執行計畫出馬了。執行計畫顧名思義,就是oracle內部執行sql語句的詳細計畫步驟。當然,其他資料庫比如mysql sqlsever等也有這個概念。本文以我常用的oracle為例。如可檢視執行計畫?其實有很多種方法。最簡單的,用i...
執行計畫總結
oracle訪問資料的訪問方法 1 全表掃瞄 full table scans,fts 2 通過rowid的表訪問 table access by rowid或rowid lookup 3 索引掃瞄 index scan或index lookup 有4種型別的索引掃瞄 1 索引唯一掃瞄 index ...