1. 程式人生 > >SQL查詢慢的解決思路

SQL查詢慢的解決思路

前提:需要優化的sql符合oracle的高效語法規則,這裡暫且不提

1.在plsql工具中通過使用F5檢視sql語句的執行計劃

2.如果走全表掃描,則可通過hints的方式更改CBO的掃描方式( TABLE ACCESS FULL 或者INDEX RANGE SCAN),hints 無法更改CBO的掃描方式,則需要考慮hints 的寫法是否準確。

hints語法規則:/*+INDEX(表或表別名 索引名稱)*/ --如果有別名的情況下不寫別名則可能會導致cbo忽略該hints

3.保證每個子查詢、表的查詢效率

4.保證每個子查詢的效率則可通過更新所涉及到物件的統計資訊嘗試解決,

更新統計資訊語法:

analyze table table_name compute statistics; --重新收集表的統計資訊

ANALYZE INDEX IDX_name ESTIMATE STATISTICS; --重新手機索引的統計資訊

5.子查詢的查詢效率沒有問題,但是hash join 的cost值太大,可以考慮更換關聯條件解決,當然前提是要保證整個sql的查詢邏輯正確