Sql-Server

一個涵蓋所有可能的謂片語合的非聚集索引?

  • May 13, 2015

假設我們有一個表,可以針對該表執行許多不同的查詢,並且每個查詢都有自己的謂片語合。

因此,例如,如果我們有一個包含 A、B、C 等列的表,我們可能有一個查詢過濾列 A 和 B 但不過濾 C,第二個查詢過濾 A 和 C 但不過濾 B,等等在。

擁有一個將表(或表)中可以作為謂詞的每一列作為其鍵列的非聚集索引是否有意義?

在我看來,我認為最好為每個查詢使用一個非聚集索引,並將該查詢的謂詞作為鍵列。

任何關於這方面的建議都會很棒!

創建索引時需要考慮多個方面。A、B 列上的索引與 B、A 列上的索引不同。在列 A 和 B 上過濾的查詢的性能將根據索引中列的順序而有所不同。

索引會減慢 DML 操作並增加數據庫的大小。

您可以參考下面的 stackoverflow 連結了解更多詳細資訊。 https://stackoverflow.com/questions/5447987/why-cant-i-simply-add-an-index-that-includes-all-columns

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