次の方法で共有


sys.stats (Transact-SQL)

Applies to:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

SQL Server のデータベース内のテーブル、インデックス、インデックス付きビューに対して存在する統計オブジェクトごとに 1 行のデータを格納します。 すべてのインデックスには、同じ名前と ID (index_id = stats_id) の対応する統計行がありますが、すべての統計行に対応するインデックスがあるわけではありません。

カタログ ビューの sys.stats_columns は、データベース内の各列の統計情報を提供します。

統計の詳細については、「統計」を参照してください。

注意

Microsoft Fabric の統計情報の詳細については、「 Fabric Data Warehouse の統計」を参照してください。

列名 データ型 説明
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 統計情報が一時的かどうかを示します。 一時的な統計情報では、読み取り専用アクセスが有効になっている Always On 可用性グループのセカンダリ データベースがサポートされます。

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 Database、Azure SQL Managed Instance。
replica_role_id tinyint 自動統計が最後に更新されたレプリカを示します。

1 = プライマリ

2 = セカンダリ

3 = Geo セカンダリ

4 = Geo HA セカンダリ

適用対象: SQL Server 2025 (17.x) プレビュー以降のバージョン、Azure SQL Database、Azure SQL Managed Instance。
replica_role_desc nvarchar(60) プライマリ、セカンダリ、Geo セカンダリ、Geo HA セカンダリ

適用対象: SQL Server 2025 (17.x) プレビュー以降のバージョン、Azure SQL Database、Azure SQL Managed Instance。
replica_name sysname 可用性グループ内のレプリカのインスタンス名。 NULL プライマリ レプリカの場合

適用対象: SQL Server 2025 (17.x) プレビュー以降のバージョン、Azure SQL Database、Azure SQL Managed Instance

アクセス許可

カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 メタデータの可視性の構成」を参照してください。

次の例では、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');