[導讀] 現象:一條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