Sql Server 2005 missing index

SQL SERVER 2005 新增了查找缺失索引的视图,从这些视图中,我们可以比较轻易的看出创建那些索引对我们的应用系统有帮助。

SQL SERVER 2005 缺失索引视图如下:

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

列名 数据类型 说明

group_handle

int

标识缺失索引组。此标识符在服务器中是唯一的。

其他列提供有关组中的索引被视为缺失的所有查询的信息。

一个索引组仅包含一个索引。

unique_compiles

bigint

将从该缺失索引组受益的编译和重新编译数。许多不同查询的编译和重新编译可影响该列值。

user_seeks

bigint

由可能使用了组中建议索引的用户查询所导致的查找次数。

user_scans

bigint

由可能使用了组中建议索引的用户查询所导致的扫描次数。

last_user_seek

datetime

由可能使用了组中建议索引的用户查询所导致的上次查找日期和时间。

last_user_scan

datetime

由可能使用了组中建议索引的用户查询所导致的上次扫描日期和时间。

avg_total_user_cost

float

可通过组中的索引减少的用户查询的平均成本。

avg_user_impact

float

实现此缺失索引组后,用户查询可能获得的平均百分比收益。该值表示如果实现此缺失索引组,则查询成本将按此百分比平均下降。

system_seeks

bigint

由可能使用了组中建议索引的系统查询(如自动统计信息查询)所导致的查找次数。有关详细信息,请参阅Auto Stats 事件类

system_scans

bigint

由可能使用了组中建议索引的系统查询所导致的扫描次数。

last_system_seek

datetime

由可能使用了组中建议索引的系统查询所导致的上次系统查找日期和时间。

last_system_scan

datetime

由可能使用了组中建议索引的系统查询所导致的上次系统扫描日期和时间。

avg_total_system_cost

float

可通过组中的索引减少的系统查询的平均成本。

avg_system_impact

float

实现此缺失索引组后,系统查询可能获得的平均百分比收益。该值表示如果实现此缺失索引组,则查询成本将按此百分比平均下降。

 

sys.dm_db_missing_index_groups

列名 数据类型 说明

index_group_handle

int

标识缺失索引组。

index_handle

int

标识属于由 index_group_handle 指定的组的缺失索引。

一个索引组仅包含一个索引。

sys.dm_db_missing_index_details

 

列名 数据类型 说明

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)

用于查询的涵盖列的逗号分隔列表。有关涵盖列或包含列的详细信息,请参阅创建带有包含列的索引

statement

nvarchar(4000)

索引缺失的表的名称。

 

 

sys.dm_db_missing_index_columns

column_id

int

列的 ID。

column_name

sysname

表列的名称。

column_usage

varchar(20)

查询使用列的方式。可能的值有:

说明
EQUALITY 列提供一个表示相等的谓词,其形式为:table.column =constant_value
INEQUALITY 列包含表示不等的谓词,例如,如下形式的谓词:table.column > constant_value“=”之外的任何比较运算符都表示不等。有关比较运算符的完整列表,请参阅比较运算符(数据库引擎)
INCLUDE 列不用于谓词赋值,但用于其他原因,例如包含一个查询。

 

 

 

从这几个试图中,我们可以从DataBase中查找到一些有意思的信息;

 

 

1.查找单表的缺失索引,当然,稍微改动下,就可以查找整个数据库的

   select db_name(d.database_id) dbname, object_name(d.object_id) tablename, d.index_handle,
   d.equality_columns, d.inequality_columns, d.included_columns, d.statement as fully_qualified_object, gs.*
    from  sys.dm_db_missing_index_groups g
       join sys.dm_db_missing_index_group_stats gs on gs.group_handle = g.index_group_handle
       join sys.dm_db_missing_index_details d on g.index_handle = d.index_handle
         where  d.database_id =  d.database_id and d.object_id =  d.object_id
          and object_name(d.object_id) = 'bizoffersearchby0042'
    order by user_seeks desc

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值