拡張イベント
SQL Server 拡張イベントのアーキテクチャは高い拡張性と柔軟な構成を備えており、これによってユーザーは、トラブルシューティングまたはパフォーマンスの問題の特定に必要な量の情報を過不足なく収集できます。
拡張イベントの詳細については、Web の「SQL Server 拡張イベント」を参照してください。
SQL Server 拡張イベントの利点
拡張イベントは軽量なパフォーマンス監視システムであり、使用されるパフォーマンス リソースはごくわずかです。 拡張イベントには、セッション データを容易かつ迅速に作成、変更、表示、および分析するためのグラフィカル ユーザー インターフェイスが 2 つ用意されています (新規セッション ウィザードと [新しいセッション])。
拡張イベントの概念
SQL Server 拡張イベントは、イベントやイベント コンシューマーなど、既存の概念を基にして、Event Tracing for Windows の概念や、新しい概念を導入したものです。
次の表は、拡張イベントにおける各種の概念を示しています。
トピック |
説明 |
---|---|
拡張イベント パッケージについて説明します。拡張イベント パッケージには、拡張イベント セッションを実行する際、データの取得と処理に使用されるオブジェクトが含まれます。 |
|
イベント セッション中にデータを受け取ることができるイベント コンシューマーについて説明します。 |
|
拡張イベント セッションを実装および管理するエンジンについて説明します。 |
|
拡張イベント セッションについて説明します。 |
拡張イベントのアーキテクチャ
拡張イベントは、サーバー システムの汎用的なイベント処理システムです。 拡張イベント インフラストラクチャでは、SQL Server からのデータを相互に関連付けることができます。さらに、特定の条件下では、オペレーティング システムやデータベース アプリケーションからのデータを相互に関連付けることもできます。 後者の場合、イベント データをオペレーティング システムまたはアプリケーションのイベント データと相互に関連付けるためには、拡張イベント出力を Event Tracing for Windows (ETW) に送る必要があります。
すべてのアプリケーションには、アプリケーションの内部と外部の両方で有用な実行ポイントが存在します。 アプリケーションの内部に目を向けると、非同期処理が、タスクの初回実行時に収集された情報を使ってエンキューされていることがあります。 一方、アプリケーションの外部では、実行ポイントは、監視ユーティリティに対し、監視対象アプリケーションの動作やパフォーマンス特性に関する情報を提供します。
拡張イベントを使用すると、プロセスの外部でイベント データを利用できます。 このデータは通常、次のようなツールやユーザーによって使用されます。
トレース ツール (SQL トレース、システム モニターなど)。
ログ ツール (Windows イベント ログ、SQL Server エラー ログなど)。
製品を管理するユーザー、または製品上でアプリケーションを開発するユーザー。
拡張イベントの設計には、次の大きな特徴があります。
拡張イベント エンジンはイベントの種類に依存しません。 イベントの内容による制約を受けないため、あらゆるイベントをあらゆるターゲットにバインドできます。 拡張イベント エンジンの詳細については、「SQL Server 拡張イベント エンジン」を参照してください。
イベントは、イベント コンシューマー (拡張イベントのターゲット) とは分離されています。 つまり、任意のターゲットが任意のイベントを受け取ることができます。 さらに、ターゲット側では、発生したあらゆるイベントを自動的に処理できるため、追加のイベント コンテキストを提供したりログに記録したりすることが可能となります。 詳細については、「SQL Server 拡張イベント ターゲット」を参照してください。
イベントは、イベントが発生した際に実行されるアクションとは異なります。 したがって、すべてのイベントには任意のアクションを関連付けることができます。
述語を使用すると、イベント データのキャプチャ時に動的にフィルターが適用されます。 この機能が拡張イベント インフラストラクチャの柔軟性を高めています。 詳細については、「SQL Server 拡張イベント パッケージ」を参照してください。
拡張イベントはイベント データを同期的に生成します。また、そのデータは非同期的に処理できるため、柔軟なイベント処理が可能となります。 さらに、拡張イベントには、次の機能が用意されています。
サーバー システムの枠を越えてイベントを処理する統一的なアプローチ。同時に、ユーザーは特定のイベントを切り分けて、トラブルシューティングに役立てることができます。
既存の ETW ツールのサポートと統合。
Transact-SQL に基づく自由な構成が可能なイベント処理メカニズム。
アクティブ プロセスを最小限の負荷で動的に監視する機能。
パフォーマンスへの体感的な影響を伴わずに動作する既定のシステム正常性セッション。 このセッションは、パフォーマンスの問題をトラブルシューティングするのに役立つシステム データを収集します。 詳細については、「system_health セッションの使用」を参照してください。
拡張イベントのタスク
Management Studio または Transact-SQL を使用して Transact-SQL データ定義言語 (DDL) ステートメント、動的管理ビューおよび関数、カタログ ビューを実行することで、SQL Server 環境の簡単、または複雑な SQL Server 拡張イベント トラブルシューティング ソリューションを作成することができます。
タスクの説明 |
トピック |
---|---|
オブジェクト エクスプローラーを使用してイベント セッションを管理します。 |
|
拡張イベント セッションを作成する方法について説明します。 |
|
ターゲット データを表示および更新する方法について説明します。 |
|
SQL Server 拡張イベント セッションを作成および管理するために、拡張イベントのツールを使用する方法について説明します。 |
|
拡張イベント セッションを変更する方法について説明します。 |
|
ターゲット データをコピーまたはエクスポートする方法について説明します。 |
|
トレース結果ビューを変更してデータの分析方法をカスタマイズする方法について説明します。 |
|
イベントに関連付けられているフィールドの情報を取得する方法について説明します。 |
|
登録パッケージで提供されているイベントを調べる方法について説明します。 |
|
登録パッケージで提供されている拡張イベント ターゲットを確認する方法について説明します。 |
|
SQL トレースのイベントとそれに関連した列について、拡張イベントにおける等価なイベントとアクションを確認する方法について説明します。 |
|
CREATE EVENT SESSION または ALTER EVENT SESSION で ADD TARGET 引数を使用する際に設定できるパラメーターを確認する方法について説明します。 |
|
既存の SQL トレース スクリプトを拡張イベント セッションに変換する方法について説明します。 |
|
ロックを保持しているクエリ、クエリのプラン、およびロックが取得されたときの Transact-SQL スタックを特定する方法について説明します。 |
|
データベース パフォーマンスを低下させているロックのソースを特定する方法について説明します。 |
|
拡張イベントを Event Tracing for Windows と共に使用してシステムの使用状況を監視する方法について説明します。 |
関連項目
参照
拡張イベント カタログ ビュー (Transact-SQL)