当我运行以下查询时:
SELECT
object_name(ss.object_id) object_name,
ss.name, last_updated, rows, rows_sampled,
round (100 * (CAST(rows_sampled as float) / CAST(rows as float)), 2) sample_percent,
steps, unfiltered_rows, ss.filter_definition, modification_counter, is_disabled
FROM
sys.stats AS ss
JOIN
sysobjects so on so.id = ss.object_id
JOIN
sys.indexes si on si.name = ss.name
CROSS APPLY
sys.dm_db_stats_properties(ss.object_id, ss.stats_id) AS sp
WHERE
so.xtype != 'S'
AND sp.rows <> sp.rows_sampled
AND ss.name not like '_WA%'
ORDER BY
object_name(ss.object_id), ss.name;
我从同一张表中看到索引,它们的行值不同。
索引中的行数是否与其基础表完全相同?
答案 0 :(得分:3)
您没有将表行与索引行进行比较。您正在将总行与用于创建索引统计信息的样本行进行比较。
行上次更新统计信息时表或索引视图中的总行数。如果统计信息被过滤或与过滤索引相对应,则行数可能少于表中的行数。
rows_sampled 用于统计计算的采样总行数。