sys.dm_db_index_usage_stats 中的 system_seeks 是什么?

Yan*_*tle 3 sql-server catalog-views

系统视图sys.dm_db_index_usage_stats有几个列反映系统查询对索引的使用情况。但是,这是什么意思?为什么系统要查询我的表?

文档不是特别有帮助:

栏目名称 数据类型 描述
系统搜索 大整数 系统查询的查找次数。
系统扫描 大整数 系统查询的扫描次数。
系统查找 大整数 系统查询的查找次数。
系统升级 大整数 系统查询的更新次数。

Mar*_*ith 5

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)