sys.dm_db_incremental_stats_properties (Transact-SQL)
適用対象: SQL サーバー
現在の SQL Server データベース内の指定したデータベース オブジェクト (テーブル) の増分統計のプロパティを返します。 sys.dm_db_incremental_stats_properties
(パーティション番号を含む) の使用方法は、非増分統計に使用される sys.dm_db_stats_properties
と似ています。
この関数は、SQL Server 2014 (12.x) Service Pack 2 および SQL Server 2016 (13.x) Service Pack 1 で導入されました。
構文
sys.dm_db_incremental_stats_properties (object_id, stats_id)
引数
object_id
増分統計のプロパティが要求された、現在のデータベース内にあるオブジェクトの ID です。 object_ID は intです。
stats_id
指定された object_idの統計情報の ID です。 統計 ID は、 sys.stats 動的管理ビューから取得できます。 stats_id は intです。
返されるテーブル
列名 | データ型 | 説明 |
---|---|---|
object_id | int | 統計オブジェクトのプロパティを返す対象であるオブジェクト (テーブル) の ID。 |
stats_id | int | 統計オブジェクトの ID。 テーブル内で一意です。 詳細については、「sys.stats (Transact-SQL)」を参照してください。 |
partition_number | int | テーブルのその部分を含むパーティション番号。 |
last_updated | datetime2 | オブジェクトが最後に更新された日付と時刻。 詳細については、このページの「解説」セクションを参照してください。 |
rows | bigint | 統計情報が最後に更新された時点のテーブルの行の総数。 統計がフィルター選択されている場合、またはフィルター選択されたインデックスに対応している場合は、行数がテーブルの行数よりも少なくなることがあります。 |
rows_sampled | bigint | 統計の計算時にサンプリングされた行の合計数。 |
steps | int | ヒストグラムの区間の数。 詳細については、「DBCC SHOW_STATISTICS (Transact-SQL)」を参照してください。 |
unfiltered_rows | bigint | フィルター式を適用する前のテーブル内の行の合計数 (フィルター選択された統計情報の場合)。 統計がフィルター選択されていない場合は unfiltered_rows は行の列に返される値と同じです。 |
modification_counter | bigint | 統計情報が前回更新されてから先頭の統計列 (構築するヒストグラムの基になる列) に対して行われた変更の総数。 この列には、メモリ最適化テーブルの情報が含まれません。 |
解説
sys.dm_db_incremental_stats_properties
は、次のいずれかの条件に該当した場合に空の行セットを返します。
object_id
またはstats_id
が NULL です。- 指定したオブジェクトが見つからないか、増分統計を含むテーブルに対応しない。
- 指定した統計 ID が、指定したオブジェクト ID の既存の統計情報に対応しない。
- 現在のユーザーに統計オブジェクトを表示する権限がない。
この動作によって、 sys.dm_db_incremental_stats_properties
や sys.objects
などのビュー内の行へのクロス適用時に、 sys.stats
を安全に使用できます。 このメソッドで、各パーティションに対応する統計情報のプロパティを返すことができます。 すべてのパーティションをまとめてマージした統計情報のプロパティを表示するには、代わりに sys.dm_db_stats_properties を使用します。
統計の更新日付は、メタデータではなく統計 BLOB オブジェクトにヒストグラムおよび密度ベクトルと共に格納されます。 統計データを生成するためのデータが読み取られない場合、統計 BLOB は作成されず、日付は使用できません。 last_updated 列は NULL です。 これは、述語が行を返さないフィルター選択された統計情報や、新しい空のテーブルの場合です。
アクセス許可
ユーザーは、統計情報列に対する SELECT 権限を持っているか、テーブルを所有しているか、固定サーバー ロール sysadmin
、db_owner
固定データベース ロール db_owner 、または db_ddladmin
固定データベース ロール db_ddladmin のメンバーである必要があります。
例
A. 簡単な例
次の例は、「 PartitionTable
パーティション テーブルとパーティション インデックスの作成 」トピックで説明されているテーブルの統計情報を返します。
SELECT * FROM sys.dm_db_incremental_stats_properties (object_id('PartitionTable'), 1);
その他の使用の推奨事項については、「 sys.dm_db_stats_properties」を参照してください。
参照
DBCC SHOW_STATISTICS (Transact-SQL)
sys.stats (Transact-SQL)
オブジェクト関連の動的管理ビューおよび関数 (Transact-SQL)
動的管理ビューと動的管理関数 (Transact-SQL)
sys.dm_db_stats_properties
sys.dm_db_stats_histogram (Transact-SQL)