sys.stats (Transact-SQL)

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

0 = 統計情報は一時的ではありません。

1 = 統計情報は一時的なものです。

適用対象:SQL Server (SQL Server 2012 (11.x) 以降)
is_incremental bit 統計情報が増分統計として作成されるかどうかを示します。

0 = 統計は増分統計ではありません。

1 = 統計情報は増分です。

適用対象:SQL Server (SQL Server 2014 (12.x) 以降)
has_persisted_sample bit PERSIST_SAMPLE_PERCENT オプションを指定して統計情報が作成または更新されたかどうかを示します。

0 = 統計情報はサンプルの割合を保持していません。

1 = 統計情報は PERSIST_SAMPLE_PERCENT オプションを指定して作成または更新されました。

適用対象:SQL Server (SQL Server 2019 (15.x) 以降)
stats_generation_method int 統計情報が作成される方法を示します。

0 = 並べ替えベースの統計情報

1 = 内部使用のみ

適用対象:SQL Server (SQL Server 2019 (15.x) 以降)
stats_generation_method_desc varchar(255) 統計情報が作成される方法についてのテキストによる説明。

並べ替えベースの統計情報

内部でのみ使用されます

適用対象:SQL Server (SQL Server 2019 (15.x) 以降)
auto_drop bit この統計オブジェクトに対して自動削除機能が有効かどうかを示します。 AUTO_DROP プロパティを使用すると、モード内での統計オブジェクトの作成が可能になり、後続のスキーマの変更が統計オブジェクトによってブロック "されなくなります"。ただし、代わりに、必要に応じて統計が削除されます。 このように、AUTO_DROP が有効になっている手動で作成された統計は、自動作成された統計と同様に動作します。 詳細については、「AUTO_DROP オプション」を参照してください。

適用対象: Azure SQL Database、Azure SQL Managed Instance、SQL Server 2022 (16.x) 以降。

アクセス許可

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

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

こちらもご覧ください

次の手順