sys.stats (Transact-SQL)

適用対象: SQL Server Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

カタログ ビュー sys.stats_columns は、データベース内の各列の統計情報を提供します。 統計の詳細については、「統計」を参照してください。

列名 データ型 説明
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 AdventureWorks2019;
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');

関連項目

次の手順