索引可以提供数据的快速访问,它能快速的定位到具体的数据行,返回sql查询语句的结果。
通过一下 sqlserver 动态管理视图,可以查看索引的使用情况:
select
DB_NAME(ddius.database_id) DataBase_Name,
OBJECT_NAME(i.object_id) Table_Name,
i.name,
ddius.user_seeks,
ddius.user_scans,
ddius.user_lookups,
ddius.user_updates
from
sys.dm_db_index_usage_stats ddius
join sys.indexes i on ddius.index_id=i.index_id
and ddius.object_id=i.object_id
order by ddius.user_seeks
其中user_seeks表示通过用户查询执行的搜索次数,user_scans表示未使用“seek”谓词的用户查询的扫描数,user_lookups表示用户查询执行的书签查找次数,user_updates表示用户查询执行的更新次数。 这包括“插入”、“删除”和汇报表示未影响实际行的操作数。视图还会返回其他变量,具体可以参考网站https://docs.microsoft.com/zh-cn/sql/relational-databases/system-dynamic-management-views/sys-dm-db-index-usage-stats-transact-sql?view=sql-server-ver16中有详解。
查看索引是否有效,并不是简单的user_seeks的执行次数,有时候还需要看user_scans是否有用;同时还需要综合考虑其他字段。例如当user_updates比user_seeks高时,我们要观察索引创建的是否合理。
标签:index,ddius,查看,SqlServer,索引,user,id,seeks From: https://www.cnblogs.com/Lydia123/p/16610092.html