Sql-Server
VARCHAR 缺失索引未顯示在缺失索引 dmv 或查詢計劃建議中
我有一個包含 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/