SQL TUNNING 注意事項

wenhual43發表於2012-05-29
       今天優化一個sql,cost的很小,但是資源消耗巨大,達到5,789.72M,執行11秒,雖然關聯了10來個表,但是就有2個大表,分別有30,40萬的資料,一個48M,一個184M.其他的都是碼錶,幾十行的資料。後來把碼錶去掉,就留下2個大表關聯查,仍然消耗3,955.37M。就算全表掃描,也不至於這麼大。
        再檢查一下SQL語句,發現有個自定義函式,註釋掉,再查詢,1秒出結果,肯定是這個自定義函式的問題,進函式看下,原來是傳2個表名,和一個欄位的值。
         如下:
 select b.NAME  from d, b where b.code = d.code   and d.ID_MAINTAB = '4952788'。2個表都沒索引,且d表有30萬的資料。這代價是巨大的。

       把索引建上,問題解決。
      心得:select 後面的自定義函式列不會體現在執行計劃裡,需要在以後的優化裡關注。

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

相關文章