SQL疑难杂症【4 】大量数据查询的时候避免子查询
生活随笔
收集整理的這篇文章主要介紹了
SQL疑难杂症【4 】大量数据查询的时候避免子查询
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前幾天發(fā)現(xiàn)系統(tǒng)變得很慢,在Profiler里面發(fā)現(xiàn)有的SQL執(zhí)行了幾十秒才返回結(jié)果,當(dāng)時(shí)的SQL如下:
?
可以看得出來(lái),在652行用了子查詢,恰巧目標(biāo)表(QS_WIP)中的記錄數(shù)為100000000+,通過(guò)如下SQL可以得到:
SELECT ROWS FROM SYSINDEXES WHERE ID=OBJECT_ID('QS_WIP') AND INDID <2大量的數(shù)據(jù)導(dǎo)致子查詢的效率非常慢,應(yīng)用系統(tǒng)一度提示"time out",經(jīng)過(guò)優(yōu)化,改為如下寫法,執(zhí)行效率明顯提升:
?
先將子查詢里面的內(nèi)容提取出來(lái)作為一個(gè)臨時(shí)表,再次join的時(shí)候就快了。
總結(jié)
以上是生活随笔為你收集整理的SQL疑难杂症【4 】大量数据查询的时候避免子查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ThoughtWorks现代企业架构框架
- 下一篇: phpstudy(自己电脑主机做服务器,