一條SQL語句變得巨慢的原因及其解決方法

[導讀] 現象:一條sql突然運行的特別慢。 select uidtable column_value, first_name|| ||last_name, company, job_title, upper(member_level), upper(service_value)from (select * from table(select c

現象:一條SQL突然運行的特別慢。

出錯原因:用戶增加了一個條件member.site=test,造成連接的順序變化了,原來的驅動表是uidTable(最多1024條記錄),現在變成了member表做驅動(600W條)。所以這條語句變的巨慢。

但是既然是外連接,為什么連接的順序會改變呢?因為外連接的連接順序不是由COST決定的,而是由連接的條件決定的。發現執行計劃如下:

為什么根本就沒有執行外連接呢?問題出在member.site=’test’這個條件上,因為對外連接的表加了條件,造成外連接失效。改為member.site(+)=’test’后,問題徹底解決。

?以上就是?一條SQL語句變得巨慢的原因及其解決方法的內容,更多相關內容請關注PHP中文網(www.php.cn)!

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享