次の方法で共有


sys.dm_exec_query_stats

更新 : 2006 年 12 月 12 日

キャッシュされたクエリ プランの集計パフォーマンス統計を返します。このビューには、キャッシュされたプラン内のクエリ ステートメントごとに 1 行が含まれており、その行の有効期間はプラン自体に関連付けられています。つまり、プランがキャッシュから削除されると、対応する行もこのビューから削除されます。

ms189741.note(ja-jp,SQL.90).gifメモ :
サーバーで現在実行中のワークロードが存在する場合、sys.dm_exec_query_stats の最初のクエリでは不正確な結果が返されることがあります。クエリを再実行すると、より正確な結果を確認できます。
列名 データ型 説明

sql_handle

varbinary(64)

クエリが含まれているバッチまたはストアド プロシージャを参照するトークンを指定します。

sql_handlestatement_start_offset および statement_end_offset と共に使用し、sys.dm_exec_sql_text 動的管理関数を呼び出して、クエリの SQL テキストを取得できます。

statement_start_offset

int

バッチまたは保存されるオブジェクトのテキスト内での、行が示すクエリの開始位置 (バイト単位)。0 で始まります。

statement_end_offset

int

バッチまたは保存されるオブジェクトのテキスト内での、行が示すクエリの終了位置 (バイト単位)。0 で始まります。値 -1 はバッチの最後を表します。

plan_generation_num

bigint

再コンパイル後、プランのインスタンスを区別するために使用できるシーケンス番号。

plan_handle

varbinary(64)

クエリが含まれているコンパイル済みのプランを参照するトークン。この値を sys.dm_exec_query_plan 動的管理関数に渡して、クエリ プランを取得できます。

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

このプランがコンパイルされてから、実行時に Microsoft .NET Framework 共通言語ランタイム (CLR) オブジェクト内部で使用された時間 (マイクロ秒単位)。CLR オブジェクトには、ストアド プロシージャ、関数、トリガ、型、および集計を指定できます。

last_clr_time

bigint

このプランの前回の実行中に .NET Framework CLR オブジェクト内で実行に使用された時間。CLR オブジェクトには、ストアド プロシージャ、関数、トリガ、型、および集計を指定できます。

min_clr_time

bigint

プランの 1 回の実行で、.NET Framework CLR オブジェクト内部で使用された最小時間 (マイクロ秒単位)。CLR オブジェクトには、ストアド プロシージャ、関数、トリガ、型、および集計を指定できます。

max_clr_time

bigint

プランの 1 回の実行で、.NET Framework CLR 内部で使用された最大時間 (マイクロ秒単位)。CLR オブジェクトには、ストアド プロシージャ、関数、トリガ、型、および集計を指定できます。

total_elapsed_time

bigint

このプランの実行完了までの経過時間の合計 (マイクロ秒単位)。

last_elapsed_time

bigint

このプランの前回の実行完了までの経過時間 (マイクロ秒単位)。

min_elapsed_time

bigint

任意のプランの実行完了までの最小経過時間 (マイクロ秒単位)。

max_elapsed_time

bigint

プランの実行を完了するための最大経過時間 (マイクロ秒単位)。

権限

サーバーに対する VIEW SERVER STATE 権限が必要です。

解説

ビュー内の統計は、クエリが完了したときに更新されます。

次の例では、CLR の平均時間に基づく上位 5 つのクエリに関する情報を返します。

SELECT TOP 5 creation_time, last_execution_time, total_clr_time,
    total_clr_time/execution_count AS [Avg CLR Time], last_clr_time,
    execution_count, 
    SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
    ((CASE statement_end_offset 
        WHEN -1 THEN DATALENGTH(st.text)
        ELSE qs.statement_end_offset END 
            - qs.statement_start_offset)/2) + 1) as statement_text
FROM sys.dm_exec_query_stats as qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as st
ORDER BY total_clr_time/execution_count DESC;
GO

参照

関連項目

動的管理ビューと動的管理関数
実行関連の動的管理ビューおよび関数
sys.dm_exec_sql_text
sys.dm_exec_query_plan

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 12 月 12 日

変更内容 :
  • sql_handleplan_generation_num、および plan_handle 列の定義を修正。

2006 年 4 月 14 日

変更内容 :
  • 例を修正。

2005 年 12 月 5 日

新しい内容
  • サーバーで現在実行中のワークロードが存在する場合、より正確な結果を得るにはこの動的管理ビューを複数回クエリする必要があることを追加。
  • statement_end_offset および statement_start_offset 列は 0 から始まり、statement_end_offset 列の値 -1 はバッチの最後を示すことを説明。