2011-05-15 27 views
0

我怎麼知道在哪裏使用哈希提示明確加入?有時查詢優化器會被欺騙並應用有時會影響性能的提示?明確提到哈希提示聯接

+2

「如果你要問價格,你買不起」 – 2011-05-15 20:09:30

回答

1

就個人而言,我從來沒有使用聯接提示。如初。

他們只對你有當時的數據和統計好。我看到他們使用的是試圖掩蓋糟糕的設計或糟糕的索引或糟糕的查詢結構。哈希連接本身並不是壞

可以更新顯示,你認爲你需要一個聯接提示,請查詢?我們可以提出其他解決方案...

+1

做使用CDC的統計數據很快就會變得不同步的項目時,可以是之間的差異我注意到嵌套循環連接和散列連接。在這些情況下,散列連接,合併連接或嵌套循環連接仍然很理想,但SQL服務器不知道,因爲統計數據已關閉。有時更新統計信息+查詢速度比少數幾個散列連接/合併連接/嵌套循環連接的實例要慢,特別是當它不進行預讀時,因爲它認爲數據集將會非常小因爲統計數據略有偏差。 – JStead 2011-05-15 21:55:53

+0

使用散列時,我看到巨大的性能收益。我只用它作爲最後的手段,當我知道的查詢應該快速運行需要永遠完成。雖然我的環境不同。我在第三方數據庫中工作,該數據庫在其數百個表中沒有任何外鍵關係。我傾向於認爲SQL Server使用這些關係來提出一個最佳計劃。這是一個正確的假設嗎? – MikeTeeVee 2011-12-08 13:08:22

+0

@MikeTeeVee:呃......不確定TBH。我確定我已經閱讀過一些內容,但會嘗試尋找權威來源 – gbn 2011-12-08 19:54:01