dmv分析索引的使用情况,包括扫描次数,更新次数,有利于你评估设计的索引使用效率,sql server 2005的确比2000在性能分析上提高很多。
user_seeks : 通过用户查询执行的搜索次数。
个人理解: 此统计索引seek的次数
user_scans: 通过用户查询执行的扫描次数。
个人理解:此统计表扫描的次数,无索引配合
user_lookups: 通过用户查询执行的查找次数。
个人理解:用户通过索引查找,在使用RID或聚集索引查找数据的次数,对于堆表或聚集表数据而言
和索引配合使用次数
user_updates: 通过用户查询执行的更新次数。
个人理解:索引或表的更新次数
--
- 使用很少的索引排在最先
declare @dbid int
select @dbid = db_id ()
select objectname = object_name (s. object_id ), s. object_id , indexname = i.name, i.index_id
, user_seeks, user_scans, user_lookups, user_updates
from sys.dm_db_index_usage_stats s,
sys.indexes i
where database_id = @dbid and objectproperty (s. object_id , ' IsUserTable ' ) = 1
and i. object_id = s. object_id
and i.index_id = s.index_id
order by (user_seeks + user_scans + user_lookups + user_updates) asc
declare @dbid int
select @dbid = db_id ()
select objectname = object_name (s. object_id ), s. object_id , indexname = i.name, i.index_id
, user_seeks, user_scans, user_lookups, user_updates
from sys.dm_db_index_usage_stats s,
sys.indexes i
where database_id = @dbid and objectproperty (s. object_id , ' IsUserTable ' ) = 1
and i. object_id = s. object_id
and i.index_id = s.index_id
order by (user_seeks + user_scans + user_lookups + user_updates) asc