Nonclustered-Index是否值得將 NONCLUSTERD FILTERED INDEX 與子句
是否值得將 NONCLUSTERD FILTERED INDEX 與子句 <>''
一起使用?
我只是想創造
NONCLUSTERED FILTERED INDEX
條件:WHERE varcharColumn <> ''
此列包含大約 3127 個不同的值,包括 value
''
。在此表上執行的所有查詢都有條件:WHERE varcharColumn <> ''
90% 的行包含空字元串,並且會被此過濾器排除。
您認為是否值得與上述子句共同創建這樣的索引?或者也許更好地創建
NONCLUSTERED FILTERED INDEX
with 子句:WHERE varcharColumn = ''
如果您的查詢主要包含
WHERE varcharColumn <> ''
條件,那麼這就是您需要用於索引的條件 - 過濾索引只包含對與條件匹配的行的引用,因此=
在索引定義中使用意味著只能''
找到與它匹配的行不能幫助您的查詢。如果
varcharColumn <> ''
僅佔表的 10% 左右,那麼索引將非常小且快速且非常有用。如果比率反轉,那麼索引可能不會有太大幫助,只會佔用(更多)空間。