适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
分析平台系统 (PDW)
Microsoft Fabric 中的 SQL 分析端点
Microsoft Fabric 中的仓库
为 SQL Server 数据库中的表、索引和索引视图对应的每个统计信息对象都包含一行。 每个索引都有一个具有相同名称和 ID 的对应统计信息行(index_id = stats_id但并非每个统计信息行都有相应的索引)。
目录视图 sys.stats_columns 为数据库中的每一列提供统计信息。
有关统计信息的详细信息,请参阅统计信息。
注意
有关 Microsoft Fabric 中的统计信息的详细信息,请参阅 Fabric 数据仓库中的统计信息。
| 列名称 | 数据类型 | 说明 | 
|---|---|---|
| object_id | int | 这些统计信息所属对象的 ID。 | 
| name | sysname | 统计信息的名称。 在对象中是唯一的。 | 
| stats_id | int | 统计信息 ID。 在对象中是唯一的。 如果统计信息对应于索引,则 stats_id 值与 sys.indexes 目录视图中的 index_id 值相同。 | 
| auto_created | bit | 指示统计信息是否由 SQL Server 自动创建。 0 = SQL Server 不会自动创建统计信息。 1 = 统计信息由 SQL Server 自动创建。 | 
| user_created | bit | 指示统计信息是否由用户创建。 0 = 用户未创建统计信息。 1 = 统计信息是用户创建的。 | 
| no_recompute | bit | 指示是否使用 NORECOMPUTE选项创建统计信息。0 = 未使用 NORECOMPUTE此选项创建统计信息。1 = 使用 NORECOMPUTE选项创建了统计信息。 | 
| has_filter | bit | 0 = 统计信息没有筛选器,并且在所有行上计算。 1 = 统计信息具有筛选器并且仅针对满足筛选器定义的行进行计算。 | 
| filter_definition | nvarchar(max) | 包含在筛选统计信息中的行子集的表达式。 NULL= 非筛选统计信息。 | 
| is_temporary | bit | 指示统计信息是否是临时的。 临时统计信息支持 AlwaysOn 可用性组辅助数据库(支持只读访问)。 0 = 统计信息不是临时的。 1 = 统计信息是临时的。 适用于:SQL Server | 
| is_incremental | bit | 指示统计信息是否作为增量统计信息创建。 0 = 统计信息不是增量统计信息。 1 = 统计信息是增量统计信息。 适用于:SQL Server 2014 (12.x) 及更高版本。 | 
| has_persisted_sample | bit | 指示是否已使用 PERSIST_SAMPLE_PERCENT选项创建或更新统计信息。0= 统计信息不会保留样本百分比。1 = 使用 PERSIST_SAMPLE_PERCENT选项创建或更新统计信息。适用于:SQL Server 2019 (15.x) 及更高版本。 | 
| stats_generation_method | int | 指示用于创建统计信息的方法。 0= 基于排序的统计信息1 = 仅供内部使用 适用于:SQL Server 2019 (15.x) 及更高版本。 | 
| stats_generation_method_desc | varchar(255) | 创建统计信息所依据的方法的文本说明。 基于排序的统计信息 仅限内部使用 适用于:SQL Server 2019 (15.x) 及更高版本。 | 
| auto_drop | bit | 指示是否为此统计信息对象启用自动删除功能。 该 AUTO_DROP属性允许在模式下创建统计信息对象,以便统计信息对象不会阻止后续架构更改,而是根据需要删除统计信息。 这样,手动创建的统计信息和AUTO_DROP启用的统计信息的行为类似于自动创建统计信息。 有关详细信息,请参阅 AUTO_DROP 选项。适用于:SQL Server 2022(16.x)及更高版本、Azure SQL 数据库、Azure SQL 托管实例。 | 
| replica_role_id | tinyint | 指示上次更新自动统计信息的副本。 1 = 主要 2 = 辅助 3 = 地理辅助数据库 4 = 异地 HA 辅助数据库 适用于:SQL Server 2025 (17.x) 预览版及更高版本、Azure SQL 数据库、Azure SQL 托管实例。 | 
| replica_role_desc | nvarchar(60) | 主要、辅助、异地辅助数据库、异地 HA 辅助数据库 适用于:SQL Server 2025 (17.x) 预览版及更高版本、Azure SQL 数据库、Azure SQL 托管实例。 | 
| replica_name | sysname | 可用性组中副本的实例名称。 NULL主副本适用于:SQL Server 2025 (17.x) 预览版及更高版本、Azure SQL 数据库、Azure SQL 托管实例 | 
权限
目录视图中仅显示用户拥有的安全对象的元数据,或用户对其拥有某些权限的安全对象的元数据。 有关详细信息,请参阅 元数据可见性配置。
示例
下面的示例返回 HumanResources.Employee 表的所有统计信息和统计信息列。
USE AdventureWorks2022;
GO
SELECT s.name AS statistics_name,
       c.name AS column_name,
       sc.stats_column_id
FROM sys.stats AS s
     INNER JOIN sys.stats_columns AS sc
         ON s.object_id = sc.object_id
        AND s.stats_id = sc.stats_id
     INNER JOIN sys.columns AS c
         ON sc.object_id = c.object_id
        AND c.column_id = sc.column_id
WHERE s.object_id = OBJECT_ID('HumanResources.Employee');