最近,我試圖優化這個查詢SQL SERVER 2008聯接提示
UPDATE Analytics
SET UserID = x.UserID
FROM Analytics z
INNER JOIN UserDetail x ON x.UserGUID = z.UserGUID
估計的執行計劃顯示在一個哈希匹配(聚合)上表更新57%和40%。我做了一些窺探,並找到了JOIN提示的主題。所以我給我的內部連接和WA-ZHAM添加了LOOP提示!新的執行計劃在Table Update上顯示38%,在Index Search上顯示58%。
所以我打算將LOOP提示應用到我的所有查詢中,直到審慎情況變得更好。經過一些Google搜索之後,我意識到JOIN提示在BOL中並沒有很好涵蓋。因此...
- 有人可以告訴我爲什麼對所有查詢應用LOOP提示是一個壞主意。我在某處讀取LOOP JOIN是查詢優化器的默認JOIN方法,但無法驗證語句的有效性?
- 何時使用JOIN提示?當sh * t擊中球迷並且鬼城不在城裏時?
- LOOP,HASH和MERGE提示有什麼區別? BOL指出MERGE似乎是最慢的,但每個提示的應用是什麼?
感謝您的時間和幫助的人!
我正在運行SQL Server 2008 BTW。上面提到的統計數據是ESTIMATED執行計劃。
在研究之前,您的索引和統計信息是否最新? – Paddy 2010-03-15 12:25:11
是的,他們是最新的 – super9 2010-03-15 12:46:36