Sql-Server
一個涵蓋所有可能的謂片語合的非聚集索引?
假設我們有一個表,可以針對該表執行許多不同的查詢,並且每個查詢都有自己的謂片語合。
因此,例如,如果我們有一個包含 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