顯然有一些我不明白索引統計信息。剛剛創建的視圖上的非聚集索引,但獲取警告列未命中統計信息
我有一個包含數百萬行記錄的表格。 爲了提高性能,我創建了一個視圖和一個唯一聚集索引(必須因爲第一個索引必須是唯一聚集的)以及一個非聚集索引,以便能夠在索引中包含更多列。
現在我比較有和沒有這些索引和視圖的一些查詢的性能;我確實得到了更多的速度,讀取和CPU使用率也降低了。
但是,當我查看sql服務器應用的執行計劃時,我發現索引搜索關於該非聚集索引中的某些列缺少統計信息的警告;那些列也出現在我的where子句中,所以我認爲這裏可能還有一些性能需要改進。 執行計劃有兩列抱怨沒有統計數據;其中一個在非聚集索引內,另一個在該索引的include子句內。 反正我不明白這些統計數據如何仍然缺失。
例如在這裏http://msdn.microsoft.com/en-us/library/ms190397.aspx它聲明「查詢優化器在創建索引時爲表或視圖上的索引創建統計信息」。 嗯,我只是創建這些索引,並沒有行更新或插入自那時以來。 我也檢查並確保AUTO_UPDATE_STATISTICS以及AUTO_CREATE_STATISTICS已啓用,我在這裏錯過了什麼?
我還通過SQL Server Management Studio瞭解了該索引的統計數據:(展開視圖,然後右鍵點擊統計下的非聚集索引,然後選擇屬性) 在統計數據列之下,兩列中的一列可以是看到的(不在包含條款中的)。
我該如何擺脫這個警告,即創建/執行那些統計數據存在?
什麼是視圖和查詢的定義是什麼? –