WEB开发网
开发学院数据库MSSQL Server 使用SQL Server动态管理视图确认缺失索引 阅读

使用SQL Server动态管理视图确认缺失索引

 2008-12-31 10:17:11 来源:WEB开发网   
核心提示:由于有了很多新功能,我们可以看到在SQL Server 2005和现在有SQL Server 2008中,使用SQL Server动态管理视图确认缺失索引,Microsoft引进了一些动态管理视图来协助确认基于查询历史的可能索引候选人, 这些动态管理视图是:n sys.dm_db_missing_index_detai

由于有了很多新功能,我们可以看到在SQL Server 2005和现在有SQL Server 2008中,Microsoft引进了一些动态管理视图来协助确认基于查询历史的可能索引候选人。

这些动态管理视图是:

n sys.dm_db_missing_index_details –返回关于缺失索引的详细信息。

n sys.dm_db_missing_index_group_stats - 返回缺失索引组的摘要信息

n sys.dm_db_missing_index_groups – 返回一个具体组的缺失索引的信息。

n sys.dm_db_missing_index_columns(index_handle) – 返回在一个索引中缺失的数据库表列的信息。这是一个函数,它要求传递index_handle。

和大多数动态管理视图的跟踪统计数据一样,当SQL Server实例重启,这些数据被完全清除时,这些工作方式基本上是一样的。所以如果你在一个测试环境中工作并且重启你的SQL Server实例,那么这些视图有可能不返回数据。

为了启动,我们将使用一个从SQL Server 2005联机帮助中得到的实例,这要求从AdventureWorks数据库中查询一张表而在StateProvinceID上没有索引,如下所示:

   USE AdventureWorks;
  GO
  SELECT City, StateProvinceID, PostalCode
  FROM Person.Address
  WHERE StateProvinceID = 1;
  GO

一旦我们运行了上面的查询,数据在动态管理视图中应该可用。让我们来快速看下每一个查询。

第一个查询从sys.dm_db_missing_index_details视图中获取数据。这可能是最有用的一个查询,因为这给我们展示了object_id、equality_columns 和inequality_columns。另外,我们可以得到关于所含列的其它具体信息。

SELECT * FROM sys.dm_db_missing_index_details

1 2 3  下一页

Tags:使用 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接