Sql-Server

VARCHAR 缺失索引未顯示在缺失索引 dmv 或查詢計劃建議中

  • September 23, 2020

我有一個包含 307200 條記錄的表,其中 f_column 為 VARCHAR(30)。缺失索引 dmv 中未顯示缺失索引或在執行計劃中建議。

SELECT f_column, f_column2 FROM t_table WHERE f_column = '23BE46F3-E9A9-4526-A2F8-3F51818025B5'

該查詢返回 5 個結果,花費了 9958 次邏輯讀取。使用下面的索引,它需要 3 次邏輯讀取。

CREATE NONCLUSTERED INDEX IX_t_Table_f_column ON t_table (f_column) INCLUDE (f_column2)

添加索引時,什麼可能導致失去的索引沒有同時出現在失去的索引 dmv 和執行計劃中,這對查詢有很大的好處?

我最初懷疑統計資訊,並更新了表的所有統計資訊,但問題仍然存在。出於某種原因,在表上添加或更改列將導致 SQLServer 恢復正常,缺失索引出現在缺失索引 dmv 以及查詢下一次執行的執行計劃中。

幾乎可以肯定,因為它被視為一個微不足道的計劃,並且那些不會啟動缺少的索引功能,所以 Darling 先生在此部落格中有一個解決方法

https://www.erikdarlingdata.com/sql-server/whats-the-point-of-1-select-1/

引用自:https://dba.stackexchange.com/questions/275926