關於SQL Server 2008的缺失索引功能
缺失索引功能使用動態管理物件和顯示計劃,提供有關可增強 SQL Server 查詢效能的缺失索引的資訊。
元件
當查詢優化器生成查詢計劃時,它將分析什麼是用於特定篩選條件的最佳索引。如果不存在最佳索引,則查詢優化器將生成非最佳查詢計劃,但仍會儲存有關這些索引的資訊。使用缺失索引功能,您可以訪問有關這些索引的資訊以決定是否實現它們。
缺失索引功能包含下列元件:
一組動態管理物件,可對其進行查詢以返回有關缺失索引的資訊。
XML 顯示計劃中的 MissingIndexes 元素,將查詢優化器認為缺失的索引與索引缺失的查詢相關聯。
缺失索引功能元件將在下列部分中進行詳細探討。
動態管理物件
在 SQL Server 上執行標準的工作負荷後,通過查詢下表中列出的動態管理物件可檢索到有關缺失索引的資訊。這些動態管理物件儲存在 master 資料庫中。
動態管理物件 返回的資訊
sys.dm_db_missing_index_group_stats
返回有關缺失索引組的摘要資訊,例如,通過實現特定的缺失索引組所獲取的效能改善。
sys.dm_db_missing_index_groups
返回有關特定缺失索引組的資訊,例如組識別符號和該組包含的所有缺失索引的識別符號。
sys.dm_db_missing_index_details
返回有關缺失索引的詳細資訊,例如,返回缺失索引的表的名稱和識別符號,以及應組成缺失索引的列和列型別。
sys.dm_db_missing_index_columns
返回有關缺失索引的資料庫表列的資訊。
您可以使用這些動態管理物件返回的資訊以及使用此資訊的工具或指令碼,生成將實現缺失索引的 CREATE INDEX DDL 語句。
事務一致性
對這些動態管理物件中的行所做的單獨修改在事務上是不一致的。也就是,如果中止查詢或回滾封閉的事務,則包含有關此查詢缺失索引資訊的行仍然存在。
僅支援整個事務。不支援檢查點和部分回滾。
注意:
當表的後設資料發生更改時,有關此表的所有缺失索引資訊都將從這些動態管理物件中刪除。例如,當在表中新增列或刪除列,或為表列建立索引時,表的後設資料都會發生更改。
XML 顯示計劃的 MissingIndexes 元素
若要將查詢與動態管理物件結果中標識的缺失索引相關聯,可檢視 XML 顯示計劃中的 MissingIndexes 元素。下面的示例闡釋了 MissingIndexes 元素:
MissingIndexes 元素包含的資訊有助於確定哪一種索引會提高 StmtSimple 元素中描述的特定查詢的效能,哪一種索引自身包含 Transact-SQL 語句。然後,可使用針對此元素返回的資訊編寫 CREATE INDEX DDL 語句。
啟用和禁用缺失索引功能
預設情況下,缺失索引功能處於啟用狀態。沒有提供任何控制元件來開啟或關閉此功能,也沒有提供任何控制元件來重置查詢動態管理物件時返回的任何表。重新啟動 SQL Server 時,將刪除所有缺失索引資訊。
只有將 -x 引數用於 sqlservr 命令提示實用工具啟動 SQL Server 例項時,才能禁用此功能。有關詳細資訊,請參閱 sqlservr 應用程式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-503353/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於SQL Server索引的最左匹配原則SQLServer索引
- Sql Server關於indexed view索引檢視的總結SQLServerIndexView索引
- SQL Server 2008 建立非聚集索引SQLServer索引
- 關於SQL Server 2008是否是SQL Server 2005的一個Service PackSQLServer
- SQL Server 2008配置並行索引操作SQLServer並行索引
- SQL Server 2008 非聚集索引設計SQLServer索引
- SQL Server 2008 新增功能 -- 複製SQLServer
- SQL Server 2008中有關XML的新功能-Mssql資料庫教程SQLServerXML資料庫
- 理解SQL Server 2008索引的儲存結構YDSQLServer索引
- 【SQL Server2008新增功能小結】SQLServer
- 關於SQL Server中索引使用及維護簡介(zt)SQLServer索引
- SQL Server 2008中的資料壓縮功能SQLServer
- 淺析SQL Server 2008的Change Data Capture功能SQLServerAPT
- 關於SQL Server2005/2008中架構的理解SQLServer架構
- SQL Server 2008篩選索引設計準則SQLServer索引
- SQL SERVER 2008 新功能:physical row locator functionSQLServerFunction
- SQL Server 2008 新增功能 -- 報表製作SQLServer
- Sql Server關於create index include帶有包含列的索引的最全解釋SQLServerIndex索引
- SQL Server 2008為索引操作選擇恢復模式SQLServer索引模式
- SQL Server索引 - 非聚集索引SQLServer索引
- 關於SQL Server的WITH(NOLOCK)和(NOLOCK)SQLServer
- 關於SQL Server的分割槽表SQLServer
- 初探SQL Server 2008線上事務處理功能SQLServer
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- 關於SQL server2008除錯儲存過程的完整步驟SQLServer除錯儲存過程
- SQL Server 2008 表和索引的行壓縮和頁壓縮SQLServer索引
- MS SQL SERVER索引優化相關查詢SQLServer索引優化
- SQL Server 索引列的順序——真的沒關係嗎SQLServer索引
- 在SQL Server 2008中物件相關性的使用SQLServer物件
- SQL Server 全文搜尋功能、全文索引方式介紹SQLServer索引
- 關於SQL Server tempdb 的各種操作SQLServer
- 關於SQL SERVER觸發器的理解SQLServer觸發器
- SQL Server 2008二月CTP中CDC功能的小改動SQLServer
- SQL Server 索引結構SQLServer索引
- 最佳SQL Server索引策略SQLServer索引
- SQL Server 2008 sqlcmd 的使用SQLServer
- SQL Server 2008檔案流功能應用設想YCSQLServer
- 包含列的索引:SQL Server索引進階 Level 5索引SQLServer