適用対象:SQL Server
現在のSQL Serverデータベース内の指定されたデータベースオブジェクト(テーブル)のインクリメンタル統計のプロパティを返します。 分割番号を含む sys.dm_db_incremental_stats_properties の使用は、非増分統計に使われる sys.dm_db_stats_properties に似ています。
この機能はSQL Server 2014(12.x)サービスパック2およびSQL Server 2016(13.x)サービスパック1で導入されました。
Syntax
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です。
返されるテーブル
| 列名 | データの種類 | Description |
|---|---|---|
| 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 です。 これは、述語が行を返さないフィルター選択された統計情報や、新しい空のテーブルの場合です。
Permissions
ユーザーは、統計情報列に対する SELECT 権限を持っているか、テーブルを所有しているか、固定サーバー ロール sysadmin、db_owner 固定データベース ロール db_owner 、または db_ddladmin 固定データベース ロール db_ddladmin のメンバーである必要があります。
Examples
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)