销售电话: 1-800-867-1380

sys.dm_db_missing_index_details

更新时间: 2011年4月

本主题已过时。可以在 SQL 14 Transact-SQL 参考中找到最新版本。

Important重要提示
本主题未经维护。有关最新版本,请参阅 sys.dm_db_missing_index_details

返回有关缺失索引的详细信息,不包括空间索引。

在 Microsoft Azure SQL Database 中,动态管理视图无法显示会影响数据库所含内容的信息,也无法显示有关用户有权访问的其他数据库的信息。为避免显示此类信息,系统将筛选掉所含数据不属于所连接的租户的每一行。

 

列名 数据类型 说明

index_handle

int

标识特定的缺失索引。该标识符在服务器中是唯一的。index_handle 是此表的密钥。

database_id

smallint

标识带有缺失索引的表所驻留的数据库。

object_id

int

标识索引缺失的表。

equality_columns

nvarchar(4000)

构成相等谓词的列的逗号分隔列表,谓词的形式如下:

table.column =constant_value

inequality_columns

nvarchar(4000)

构成不等谓词的列的逗号分隔列表,例如以下形式的谓词:

table.column > constant_value

“=”之外的任何比较运算符都表示不相等。

included_columns

nvarchar(4000)

用于查询的涵盖列的逗号分隔列表。有关涵盖列或包含列的详细信息,请参阅Create Indexes with Included Columns

statement

nvarchar(4000)

索引缺失的表的名称。

sys.dm_db_missing_index_details 返回的信息会在查询优化器优化查询时更新,因而不是持久化的。缺失索引信息只保留到重新启动 SQL Server 前。如果数据库管理员要在服务器回收后保留缺失索引信息,则应定期制作缺失索引信息的备份副本。

若要确定特定缺失索引所属的缺失索引组,可以查询 sys.dm_db_missing_index_groups 动态管理视图,方法是基于 index_handle 列将该视图与 sys.dm_db_missing_index_details 同等联接。

若要将由 sys.dm_db_missing_index_details 返回的信息转换为 CREATE INDEX 语句,则相等列应该放置在不等列前面,并且应该一起创建索引键。应该使用 INCLUDE 子句将包含列添加到 CREATE INDEX 语句。若要确定相等列的有效顺序,请基于其选择性对其排序:首先列出选择性最强的列(列列表中的最左侧列)。

如果事务创建或删除了一个表,则包含有关已删除对象的缺失索引信息的行将从此动态管理对象中删除,以保持事务一致性。

需要对服务器具有 VIEW DATABASE STATE 权限。不能从 master 数据库中查询。有关详细信息,请参阅Dynamic Management Objects

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2014 Microsoft