Yan*_*tle 3 sql-server catalog-views
系统视图sys.dm_db_index_usage_stats
有几个列反映系统查询对索引的使用情况。但是,这是什么意思?为什么系统要查询我的表?
该文档不是特别有帮助:
栏目名称 | 数据类型 | 描述 |
---|---|---|
系统搜索 | 大整数 | 系统查询的查找次数。 |
系统扫描 | 大整数 | 系统查询的扫描次数。 |
系统查找 | 大整数 | 系统查询的查找次数。 |
系统升级 | 大整数 | 系统查询的更新次数。 |
sys.dm_db_missing_index_group_stats
将其记录为
由系统查询(例如自动统计查询)引起的搜索次数,组中的推荐索引可能已被用于。有关详细信息,请参阅自动统计事件类。
生成一些system_seeks
和 的一种方法system_scans
如下。
我不确定是否存在其他情况(除了过滤的统计信息),您最终会system_seek
在用户表上得到 a 。
CREATE TABLE dbo.Test(X INT PRIMARY KEY);
INSERT Test
SELECT value
FROM generate_series(1,10000)
--1 seek
CREATE STATISTICS S_Filtered
ON Test(X) WHERE X > 100
--2 seeks
UPDATE STATISTICS dbo.Test (S_Filtered)
-- 1 scans
CREATE STATISTICS S_UnFiltered ON dbo.Test(X);
-- 2 scans
UPDATE STATISTICS dbo.Test(S_UnFiltered);
-- 3 scans
UPDATE STATISTICS dbo.Test(S_UnFiltered);
SELECT index_id, user_seeks, user_scans, user_lookups, user_updates, last_user_seek, last_user_scan, last_user_lookup, last_user_update, system_seeks,
system_scans, system_lookups, system_updates, last_system_seek, last_system_scan, last_system_lookup, last_system_update
FROM sys.dm_db_index_usage_stats
WHERE object_id = object_id('dbo.Test')
Run Code Online (Sandbox Code Playgroud)