sys.dm_db_index_usage_stats (Transact-SQL)
返回 SQL Server 中不同类型索引操作的计数以及上次执行每种操作的时间。
在 Windows Azure SQL Database 中,动态管理视图不能公开将影响数据库包含的信息,也不能公开有关用户可以访问的其他数据库的信息。 要避免公开此类信息,需要将包含不属于已连接租户的数据的每一行都筛选掉。
备注
sys.dm_db_index_usage_stats 不返回有关内存优化索引的信息。有关内存优化索引的用法信息,请参阅 sys.dm_db_xtp_index_stats (Transact-SQL)。
适用范围:SQL Server(SQL Server 2008 至当前版本),Windows Azure SQL Database(初始版本至当前版本)。 |
列名 |
数据类型 |
说明 |
---|---|---|
database_id |
smallint |
在其中定义表或视图的数据库的 ID。 |
object_id |
int |
为其定义索引的表或视图的 ID。 |
index_id |
int |
索引的 ID。 |
user_seeks |
bigint |
通过用户查询执行的搜索次数。 |
user_scans |
bigint |
通过用户查询执行的扫描次数。 |
user_lookups |
bigint |
由用户查询执行的书签查找次数。 |
user_updates |
bigint |
通过用户查询执行的更新次数。 |
last_user_seek |
datetime |
用户上次执行搜索的时间。 |
last_user_scan |
datetime |
用户上次执行扫描的时间。 |
last_user_lookup |
datetime |
用户上次执行查找的时间。 |
last_user_update |
datetime |
用户上次执行更新的时间。 |
system_seeks |
bigint |
通过系统查询执行的搜索次数。 |
system_scans |
bigint |
通过系统查询执行的扫描次数。 |
system_lookups |
bigint |
通过系统查询执行的查找次数。 |
system_updates |
bigint |
通过系统查询执行的更新次数。 |
last_system_seek |
datetime |
系统上次执行搜索的时间。 |
last_system_scan |
datetime |
系统上次执行扫描的时间。 |
last_system_lookup |
datetime |
系统上次执行查找的时间。 |
last_system_update |
datetime |
系统上次执行更新的时间。 |
注释
由一个查询执行对指定索引所进行的每个单独的搜索、扫描、查找或更新都被计为对该索引的一次使用,并使此视图中的相应计数器递增。 对于由用户提交的查询所引发的操作以及由内部生成的查询所引发的操作(例如为收集统计信息而进行的扫描),都将报告相应的信息。
user_updates 计数器指示由基础表或视图上的插入、更新或删除操作所引起的索引维护级别。 可以使用此视图确定应用程序极少使用的索引。 还可以使用此视图确定引发维护开销的索引。 您可能要删除引发维护开销但不用于查询或只是偶尔用于查询的索引。
只要启动 SQL Server (MSSQLSERVER) 服务,计数器就初始化为空。 而且,当分离或关闭数据库时(例如,由于 AUTO_CLOSE 设置为 ON),便会删除与该数据库关联的所有行。
使用索引时,如果索引没有对应的行,则向 sys.dm_db_index_usage_stats 中添加一行。 当添加该行时,它的计数器会初始设置为零。
权限
需要 VIEW SERVER STATE 权限。 有关详细信息,请参阅动态管理视图和函数 (Transact-SQL)。
请参阅
参考
与索引相关的动态管理视图和函数 (Transact-SQL)
sys.dm_db_index_physical_stats (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)