Sql-Server

在 where 查詢中排序條件是否有意義?

  • December 11, 2014

我們在表 Tbl 中有一個聚集索引,其順序為 A、B、C。編寫查詢是否有意義

WHERE A = @a, B = @b, C = @c

或者它會和

WHERE C = @c, B = @b, A = @a

查詢順序對聚集索引有意義嗎?

沒有區別:優化器評估查詢並為自己計算謂詞順序,匹配合適的索引和它所做的所有其他好東西。

這是因為 SQL 是“聲明性的”而不是“程序性的”:你說你想要什麼,而不是如何去做。

雖然讀起來更好…

實際上,當我們使用 where 子句時,sql 會為每個 where 子句創建單獨的頁面。然後它基於 AND , OR 進行連接,然後產生輸出。所以,這里切換 where 子句不是問題。

引用自:https://dba.stackexchange.com/questions/73373