天天看點

第十二章——SQLServer統計資訊(4)——在過濾索引上的統計資訊前言:準備工作:步驟:分析:

        從2008開始,引入了一個增強非聚集索引的新功能——過濾索引(filter index),可以使用帶有where條件的語句來建立非聚集索引,過濾掉不需要的資料,降低索引的維護開銷和存儲空間,提高查詢性能。

在AdventureWorks2012上,有一個Production.WorkOrder表,将使用這個表來做示範。

1、  建立一個非聚集索引在Production.WorkOrder列:

2、  建立一個非聚集索引會自動更新對應的統計對象:

3、  結果如下:

第十二章——SQLServer統計資訊(4)——在過濾索引上的統計資訊前言:準備工作:步驟:分析:

4、  檢視All denisty列,現在删掉之前的索引,并建立一個過濾索引:

5、  再次執行并檢視All density列,最後删除這個索引:

6、  結果如下:

第十二章——SQLServer統計資訊(4)——在過濾索引上的統計資訊前言:準備工作:步驟:分析:

        從上面的兩個圖中對比結果可以知道,第一個結果集,在row sampled列是不同的,第一個是72591,第二個是729,相差了接近100倍,在Filter Expression列,一個是null一個是有值。

        在All density列,第一個顯示的是ScriptReasonID列,這個沒有什麼明顯的差别。但是第二個就有比較大的差異。因為ScriptReasonID是指向聚集索引的非聚集索引列。