連載
実行プランの集計されたパフォーマンス統計に関する情報を出力する:SQL Server動的管理ビューレファレンス(69)
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、実行プランの集計されたパフォーマンス統計に関する情報の出力について解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_exec_query_stats」における、実行プランの集計されたパフォーマンス統計に関する情報の出力について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)です。
概要
実行プランがメモリ上にキャッシュされている間は、パフォーマンスに関する情報も収集されています。「sys. dm_exec_query_stats」を実行すると、実行プランの集計されたパフォーマンス統計に関する情報を出力します。
出力内容
列名 | データ型 | 説明 |
---|---|---|
sql_handle | varbinary(64) | クエリの識別子 |
statement_start_offset | int | ステートメントの開始オフセット |
statement_end_offset | int | ステートメントの終了オフセット |
plan_generation_num | bigint | プランのシーケンス番号 |
plan_handle | varbinary(64) | クエリプランの識別子 |
creation_time | datetime | プランがコンパイルされた時刻 |
last_execution_time | datetime | 前回のプランが実行された時刻 |
execution_count | bigint | プランが実行された回数 |
total_worker_time | bigint | CPU時間の合計(マイクロ秒単位) |
last_worker_time | bigint | 前回実行時のCPU時間(マイクロ秒単位) |
min_worker_time | bigint | 1回の実行での最小CPU時間(マイクロ秒単位) |
max_worker_time | bigint | 1回の実行での最大CPU時間(マイクロ秒単位) |
total_physical_reads | bigint | 物理読み取り数の合計 |
last_physical_reads | bigint | 前回実行時の物理読み取り数 |
min_physical_reads | bigint | 1回の実行での最小物理読み取り数 |
max_physical_reads | bigint | 1回の実行での最大物理読み取り数 |
total_logical_writes | bigint | 論理書き込み数の合計 |
last_logical_writes | bigint | 前回実行時の論理書き込み数 |
min_logical_writes | bigint | 1回の実行での最小論理書き込み数 |
max_logical_writes | bigint | 1回の実行での最大論理書き込み数 |
total_logical_reads | bigint | 論理読み取り数の合計 |
last_logical_reads | bigint | 前回実行時の論理読み取り数 |
min_logical_reads | bigint | 1回の実行での最小論理読み取り数 |
max_logical_reads | bigint | 1回の実行での最大論理読み取り数 |
total_clr_time | bigint | CLRで使用した時間の合計(マイクロ秒単位) |
last_clr_time | bigint | 前回実行時のCLRで使用した時間(マイクロ秒単位) |
min_clr_time | bigint | 1回の実行でのCLRで使用した最小時間(マイクロ秒単位) |
max_clr_time | bigint | 1回の実行でのCLRで使用した最大時間(マイクロ秒単位) |
total_elapsed_time | bigint | 実行時間の合計(マイクロ秒単位) |
last_elapsed_time | bigint | 前回実行時の実行時間(マイクロ秒単位) |
min_elapsed_time | bigint | 1回の実行での最小実行時間(マイクロ秒単位) |
max_elapsed_time | bigint | 1回の実行での最大実行時間(マイクロ秒単位) |
query_hash | binary(8) | クエリのハッシュ値 |
query_plan_hash | binary(8) | クエリプランのハッシュ値 |
total_rows | bigint | クエリによって返された行数の合計 |
last_rows | bigint | 前回実行時のクエリによって返された行数 |
min_rows | bigint | 1回の実行でのクエリによって返された最小行数 |
max_rows | bigint | 1回の実行でのクエリによって返された最大行数 |
statement_sql_handle | varbinary(64) | クエリストアが有効な場合のクエリの識別子 |
statement_context_id | bigint | クエリストアが有効な場合のコンテキストID |
total_dop | bigint | クエリの並列度の合計 |
last_dop | bigint | 前回実行時のクエリの並列度 |
min_dop | bigint | 1回の実行でのクエリの最小並列度 |
max_dop | bigint | 1回の実行でのクエリの最大並列度 |
total_grant_kb | bigint | 予約メモリ量の合計(KB単位) |
last_grant_kb | bigint | 前回実行時の予約メモリ量(KB単位) |
min_grant_kb | bigint | 1回の実行での最小予約メモリ量(KB単位) |
max_grant_kb | bigint | 1回の実行での最大予約メモリ量(KB単位) |
total_used_grant_kb | bigint | メモリ使用量の合計(KB単位) |
last_used_grant_kb | bigint | 前回実行時のメモリ使用量(KB単位) |
min_used_grant_kb | bigint | 1回の実行での最小メモリ使用量(KB単位) |
max_used_grant_kb | bigint | 1回の実行での最大メモリ使用量(KB単位) |
total_ideal_grant_kb | bigint | 理想的なメモリ使用量の合計(KB単位) |
last_ideal_grant_kb | bigint | 前回実行時の理想的なメモリ使用量(KB単位) |
min_ideal_grant_kb | bigint | 1回の実行での理想的な最小メモリ使用量(KB単位) |
max_ideal_grant_kb | bigint | 1回の実行での理想的な最大メモリ使用量(KB単位) |
total_reserved_threads | bigint | 予約済み並列スレッドの合計 |
last_reserved_threads | bigint | 前回実行時の予約済み並列スレッド |
min_reserved_threads | bigint | 1回の実行での予約済み最小並列スレッド |
max_reserved_threads | bigint | 1回の実行での予約済み最大並列スレッド |
total_used_threads | bigint | 使用された並列スレッドの合計 |
last_used_threads | bigint | 前回実行時の使用された並列スレッド |
min_used_threads | bigint | 1回の実行での使用された最小並列スレッド |
max_used_threads | bigint | 1回の実行での使用された最大並列スレッド |
total_columnstore_segment_reads | bigint | 列ストアセグメントの読み取り数の合計 |
last_columnstore_segment_reads | bigint | 前回実行時の列ストアセグメントの読み取り数 |
min_columnstore_segment_reads | bigint | 1回の実行での列ストアセグメントの最小読み取り数 |
max_columnstore_segment_reads | bigint | 1回の実行での列ストアセグメントの最大読み取り数 |
total_columnstore_segment_skips | bigint | 列ストアセグメントのスキップ数の合計 |
last_columnstore_segment_skips | bigint | 前回実行時の列ストアセグメントのスキップ数 |
min_columnstore_segment_skips | bigint | 1回の実行での列ストアセグメントの最小スキップ数 |
max_columnstore_segment_skips | bigint | 1回の実行での列ストアセグメントの最大スキップ数 |
total_spills | bigint | 書き込まれたページ数の合計 |
last_spills | bigint | 前回実行時の書き込まれたページ数 |
min_spills | bigint | 1回の実行での書き込まれた最小ページ数 |
max_spills | bigint | 1回の実行での書き込まれた最大ページ数 |
total_num_physical_reads | bigint | 物理読み取り数の合計 |
last_num_physical_read | bigint | 前回実行時の物理読み取り数 |
min_num_physical_read | bigint | 1回の実行での最小物理読み取り数 |
max_num_physical_read | bigint | 1回の実行での最大物理読み取り数 |
total_page_server_reads | bigint | リモートサーバの読み取りページ数の合計 |
last_page_server_reads | bigint | 前回実行時のリモートサーバの読み取りページ数 |
min_page_server_reads | bigint | 1回の実行でのリモートサーバの最小読み取りページ数 |
max_page_server_reads | bigint | 1回の実行でのリモートサーバの最大読み取りページ数 |
total_num_page_server_reads | bigint | リモートサーバのページ読み取り数の合計 |
last_num_page_server_reads | bigint | 前回実行時のリモートサーバのページ読み取り数 |
min_num_page_server_reads | bigint | 1回の実行でのリモートサーバのページ最小読み取り数 |
max_num_page_server_reads | bigint | 1回の実行でのリモートサーバのページ最大読み取り数 |
動作例
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQL Serverの動的管理ビューとは?
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。 - 「DMV(Dynamic Management View)」でパフォーマンス遅延の「原因」を調べる
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「処理遅延の原因を追求する“DMVの使い方”」を説明します。 - SQL Serverの動きを制御する「トレースフラグ」とは何か
「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「トレースフラグ」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。初回は「トレースフラグとはそもそも何か」を解説します。