我使用SQL Server和我目前正試圖調試,其中優化選擇較差的執行計劃的一些疑問,我發現我的索引列的一個,當我運行命令:爲什麼我的索引列顯示沒有統計信息?
DBCC SHOW_STATISTICS ("tablename", columnname);
對於此索引列,數據庫將返回:
無法在系統目錄中找到統計信息'columnname'。
根據此頁: http://msdn.microsoft.com/en-us/library/ms190397.aspx
「創建索引時,查詢優化器創建的表或視圖索引的統計信息。」
我也有AUTO_CREATE_STATISTICS。
我是否必須手動運行此列的CREATE STATISTICS?如果是這樣,因爲它是一個索引不應該已經有列的統計數據?
在'選擇的任何跡象* FROM sys.stats WHERE OBJECT_ID = OBJECT_ID( '表名')'?這個索引是一個複合索引還是一個單列索引?另外索引本身在'sys.indexes'中沒有顯示爲禁用? –
它顯示在sys.stats表中,索引名稱爲'IX_cl_messages_sent_time',它顯示的統計信息ID爲3,該表中的所有其他列都是0.它是日期時間類型列上的單列索引。索引在sys.indexes表中未被禁用。 –
如果您嘗試'DBCC SHOW_STATISTICS(「tablename」,IX_cl_messages_sent_time);'? –