連載
» 2022年03月01日 05時00分 公開

拡張イベントセッションの一覧を出力するSQL Server動的管理ビューレファレンス(89)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、拡張イベントセッションの一覧を出力する方法について解説します。

[伊東敏章,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

SQL Server動的管理ビュー一覧

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_xe_sessions」における、拡張イベントセッションの一覧を出力する方法について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)です。

概要

 SQL Serverでは拡張イベント(XEvent)の機能を使用することで、SQL Serverの内部で発生したイベントや付随する情報を記録して、パフォーマンス問題の解析や、問題の原因特定に必要なデータを収集できます。

 類似の機能として、以前からSQL Serverトレースがありました。拡張イベントはより新しい機能となり、採取パフォーマンスの改善や対象のイベント、収集できる情報の増加、記録方法の選択肢の増加がなされました。

 拡張イベントを収集するには、あらかじめ拡張イベントセッションを構成して、採取対象とするイベントや含める情報、記録先などを設定しておく必要があります。そして、拡張イベントを採取する期間にあわせて、拡張イベントセッションを開始、停止します。

 「sys.dm_xe_sessions」動的管理ビューでは、構成された拡張イベントセッションの一覧情報を出力します。この一覧には、拡張イベントセッションのバッファーサイズやバッファーがいっぱいになった場合の動作設定など、拡張イベントセッションに関する構成情報が含まれます。拡張イベントセッションに構成されたイベントや出力先のターゲットの情報については含まれませんので、別の拡張イベントセッションに関連した動的管理ビューを使用して確認する必要があります。

出力内容

列名 データ型 説明
address varbinary(8) セッションのメモリアドレス。ローカルシステム全体で一意
name nvarchar(256) セッションの名前。名前はローカルシステム全体で一意
pending_buffers int 処理を保留しているバッファーの最大数
total_regular_buffers int 標準バッファーの合計数
regular_buffer_size bigint 標準バッファーのサイズ(バイト単位)
total_large_buffers int ラージイベント用のバッファー(ラージバッファー)の合計数
large_buffer_size bigint ラージバッファーのサイズ(バイト単位)
total_buffer_size bigint メモリバッファーの合計サイズ(バイト単位)
buffer_policy_flags int 全てのバッファーがいっぱいになり、新しいイベントが発生した場合のセッションイベントバッファーの動作を示すビットマップ
buffer_policy_desc nvarchar(256) 「buffer_policy_flags」の説明
 Drop event
 Do not drop events
 Drop full buffer
 Allocate new buffer
flags int セッションに設定されているフラグを示すビットマップ
flag_desc nvarchar(256) 「flags」の説明。次の値の組み合わせ
 Flush buffers on close
 Dedicated dispatcher
 Allow recursive events
dropped_event_count int バッファーがいっぱいになったときに削除されたイベントの数。バッファーポリシーが「Drop full buffer」「Do not drop events」の場合は「0」
dropped_buffer_count int バッファーがいっぱいになったときに削除されたバッファーの数。バッファーポリシーが「Drop event」「Do not drop events」に設定されている場合は「0」
blocked_event_fire_time int バッファーがいっぱいになったときにイベントの実行がブロックされた時間の長さ。バッファーポリシーが「Drop full buffer」「Drop event」の場合は「0」
create_time datetime セッションが作成された時刻
largest_event_dropped_size int セッションバッファーに収まらなかったイベントの最大サイズ

動作例

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。