我使用SQL Server 2012的爲什麼有些列減慢查詢
我試圖優化查詢是服用點是這樣的:
SELECT TOP 20 ta.id,
ta.name,
ta.amt,
tb.id,
tb.name,
tc.name,
tc.id,
tc.descr
FROM a ta
INNER JOIN b tb
ON ta.id = tb.id
INNER JOIN c tc
ON tb.id = tc.id
ORDER BY ta.mytime DESC
查詢約需5 - 6秒跑步。連接中使用的所有列都有索引。這些表格有500k條記錄。
我的問題是:當我從select中刪除列tc.name,tc.id和tc.descr時,查詢以小於1秒的時間返回結果。爲什麼?
因爲您要從'JOIN'中刪除整個表。你應該從最大的表格開始,然後'加入'到更小的表格。 – Kermit
經常寫'c'嗎? – MikeSmithDev
如果您使用的是SQL Management Studio,則可以運行優化程序來查看執行計劃。這可能會提供一些洞察,究竟是什麼問題:http://www.simple-talk.com/sql/sql-training/the-sql-server-query-optimizer/ – Wade