為什麼該SQL的執行計劃不走索引???

xz43發表於2013-01-29
最近比較清閒,就去檢查資料庫後臺的執行指令碼,看是否有比較消耗效能的指令碼可以最佳化。看是否有比較消耗效能的指令碼可以最佳化。
發現有個SQL語句執行效率很低,指令碼很簡單,兩個表A表(5kw記錄)和B表(5w記錄)Hash Join關聯,兩個表的關聯欄位F1和F2上,都有索引。

檢查表及索引的統計資訊,發現統計資訊是最新的,沒有問題。

嘗試修改SQL,把原來的hash join 改為in和exists,效率一樣,索引不起作用。

最後一招,hint強制走索引,結果執行計劃效率更差。

個人實在沒轍了,希望有這方面經驗的朋友,能提供好的建議和分析。

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

相關文章