sys.dm_db_incremental_stats_properties (Transact-SQL)

适用范围:SQL Server

返回当前 SQL Server 数据库中指定数据库对象(表)的增量统计信息的属性。 使用 sys.dm_db_incremental_stats_properties (包含分区号)类似于 sys.dm_db_stats_properties (用于非增量统计信息)。

此函数是在 SQL Server 2014 (12.x) Service Pack 2 和 SQL Server 2016 (13.x) Service Pack 1 中引入的。

语法

sys.dm_db_incremental_stats_properties (object_id, stats_id)  

参数

object_id
当前数据库中要请求其某个增量统计信息属性的对象的 ID。 object_idint

stats_id
指定 object_id 的统计信息 ID。 可以从 sys.stats 动态管理视图获取该统计信息 ID。 stats_idint

返回的表

列名称 数据类型 说明
object_id int 要返回统计信息对象属性的对象(表)的 ID。
stats_id int 统计信息对象的 ID。 在表中是唯一的。 有关详细信息,请参阅 sys.stats (Transact-SQL)
partition_number int 包含表的一部分的分区的编号。
last_updated datetime2 上次更新统计信息对象的日期和时间。 有关详细信息,请参阅此页中的备注部分。
bigint 上次更新统计信息时表中的总行数。 如果筛选统计信息或者统计信息与筛选索引对应,该行数可能小于表中的行数。
rows_sampled bigint 用于统计信息计算的抽样总行数。
steps int 直方图中的梯级数。 有关详细信息,请参阅 DBCC SHOW_STATISTICS (Transact-SQL)
unfiltered_rows bigint 应用筛选表达式(用于筛选的统计信息)之前表中的总行数。 如果未筛选统计信息,则 unfiltered_rows 等于行列中返回的值。
modification_counter bigint 自上次更新统计信息以来前导统计信息列(构建直方图的列)的总修改次数。

此列不包含有关内存优化表的信息。

注解

sys.dm_db_incremental_stats_properties 在满足以下任一条件时将返回空的行集:

  • object_idstats_id 为 NULL。
  • 指定的对象未找到或不对应于具有增量统计信息的某个表。
  • 指定的统计信息 ID 不对应于指定对象 ID 的现有统计信息。
  • 当前用户没有权限查看统计信息对象。

此行为在如 sys.dm_db_incremental_stats_propertiessys.objects 等视图中交叉应用于行时,允许安全使用 sys.stats。 此方法可返回对应于每个分区的统计信息的属性。 若要查看跨所有分区组合的合并统计信息的属性,请改为使用 sys.dm_db_stats_properties。

统计信息更新日期连同直方图密度矢量一起存储在统计信息 blob 对象中,而不是存储在元数据中。 如果未读取任何数据以生成统计信息数据,则不会创建统计信息 blob、日期不可用, 并且last_updated 列为 NULL。 针对谓词不返回任何行或新的空表,筛选的统计信息便是这种情况。

权限

要求用户对统计信息列拥有 select 权限,或用户拥有表,或用户是 sysadmin 固定服务器角色、db_owner 固定数据库角色或 db_ddladmin 固定数据库角色的成员。

示例

A. 简单示例

下面的示例将返回 PartitionTable 创建已分区表和已分区索引 主题中所述的表的统计信息。

SELECT * FROM sys.dm_db_incremental_stats_properties (object_id('PartitionTable'), 1);

有关其他使用建议,请参阅 sys.dm_db_stats_properties

另请参阅

DBCC SHOW_STATISTICS (Transact-SQL)
sys.stats (Transact-SQL)
与对象相关的动态管理视图和函数 (Transact-SQL)
动态管理视图和函数 (Transact-SQL)
sys.dm_db_stats_properties
sys.dm_db_stats_histogram (Transact-SQL)