sys.stats (Transact-SQL)
適用対象: SQL Server Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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');
関連項目
- オブジェクト カタログ ビュー (Transact-SQL)
- カタログ ビュー (Transact-SQL)
- SQL Server システム カタログに対するクエリに関してよく寄せられる質問
- sys.dm_db_stats_properties (Transact-SQL)
- sys.dm_db_stats_histogram (Transact-SQL)
- sys.stats_columns (Transact-SQL)