适用于:SQL Server
返回当前 SQL Server 数据库中指定数据库对象(表)的增量统计属性。 (包含分区号)的使用 sys.dm_db_incremental_stats_properties 类似于 sys.dm_db_stats_properties 用于非增量统计的。
该功能在 SQL Server 2014(12.x)服务包 2 和 SQL Server 2016(13.x)服务包 1 中引入。
Syntax
sys.dm_db_incremental_stats_properties (object_id, stats_id)
Arguments
object_id
是当前数据库中请求其增量统计属性的对象的ID。
object_id 是 int。
stats_id
指定 object_id 的统计信息 ID。 可以从 sys.stats 动态管理视图获取该统计信息 ID。
stats_id 是 int。
返回的表
| 列名称 | 数据类型 | 说明 |
|---|---|---|
| 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_id或stats_id为零。 - 指定的对象未被找到,或者不对应具有增量统计的表。
- 指定的统计信息 ID 不对应于指定对象 ID 的现有统计信息。
- 当前用户没有权限查看统计信息对象。
这种行为允许在交叉应用到视图(如 sys.dm_db_incremental_stats_properties 和sys.objects)中的行时安全使用 sys.stats 。 该方法可以返回对应每个分区的统计属性。 要查看合并统计量在所有分区的合并属性,请使用sys.dm_db_stats_properties。
统计信息更新日期连同直方图和密度矢量一起存储在统计信息 blob 对象中,而不是存储在元数据中。 如果未读取任何数据以生成统计信息数据,则不会创建统计信息 blob、日期不可用, 并且last_updated 列为 NULL。 针对谓词不返回任何行或新的空表,筛选的统计信息便是这种情况。
Permissions
要求用户对统计信息列拥有 select 权限,或用户拥有表,或用户是 sysadmin 固定服务器角色、db_owner 固定数据库角色或 db_ddladmin 固定数据库角色的成员。
Examples
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)