SQL Server 拡張イベントには、高度にスケーラブルで構成可能なアーキテクチャがあり、ユーザーが問題解決やパフォーマンス問題の特定に必要な情報を必要に応じて多くも少なくも柔軟に収集できます。
Web 上の拡張イベントの詳細については、 SQL Server 拡張イベントを参照してください。
SQL Server 拡張イベントの利点
拡張イベントは、ごく少数のパフォーマンス リソースを使用する軽量のパフォーマンス監視システムです。 拡張イベントには、セッション データを作成、変更、表示、分析するための 2 つのグラフィカル ユーザー インターフェイス (新しいセッション ウィザード と 新しいセッション) が用意されています。
拡張イベントの概念
SQL Server 拡張イベント (拡張イベント) は、イベントやイベント コンシューマーなどの既存の概念に基づいて構築され、Windows イベント トレーシングの概念を使用し、新しい概念を導入します。
拡張イベントの概念を次の表に示します。
トピック | 説明 |
---|---|
SQL Server 拡張イベント パッケージ | 拡張イベント セッションの実行中にデータの取得と処理に使用されるオブジェクトを含む拡張イベント パッケージについて説明します。 |
SQL Server 拡張イベント ターゲット | イベント セッション中にデータを受け取ることができるイベント コンシューマーについて説明します。 |
SQL Server 拡張イベント エンジン | 拡張イベント セッションを実装および管理するエンジンについて説明します。 |
SQL Server 拡張イベント セッション | 拡張イベント セッションについて説明します。 |
拡張イベントのアーキテクチャ
拡張イベント (拡張イベント) は、サーバー システム用の一般的なイベント処理システムです。 拡張イベント インフラストラクチャでは、SQL Server からのデータの相関関係と、特定の条件下でのオペレーティング システムとデータベース アプリケーションからのデータの相関関係がサポートされます。 後者の場合、拡張イベントの出力は、イベント データをオペレーティング システムまたはアプリケーションのイベント データと関連付けるために、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 トレースのイベントとそれに関連した列について、拡張イベントにおける等価なイベントとアクションを確認する方法について説明します。 | SQL トレースのイベント クラスと等価な拡張イベントを確認する |
CREATE EVENT SESSION または ALTER EVENT SESSION で ADD TARGET 引数を使用するときに設定できるパラメーターを検索する方法について説明します。 | ADD TARGET 引数の構成可能なパラメーターを取得する |
既存の SQL トレース スクリプトを拡張イベント セッションに変換する方法について説明します。 | 既存の SQL トレース スクリプトから拡張イベント セッションへの変換 |
ロックを保持しているクエリ、クエリのプラン、およびロックが取得されたときの Transact-SQL スタックを特定する方法について説明します。 | ロックを保持しているクエリの特定 |
データベースのパフォーマンスを妨げているロックのソースを特定する方法について説明します。 | ロックの大半を取得しているオブジェクトを見つける |
拡張イベントを Event Tracing for Windows と共に使用してシステムの使用状況を監視する方法について説明します。 | 拡張イベントを使用したシステムの使用状況の監視 |
こちらもご覧ください
データ層アプリケーション
SQL Server オブジェクトとバージョンの DAC サポート
データ層アプリケーションをデプロイする
データ層アプリケーションの監視
拡張イベントの動的管理ビュー
[拡張イベント カタログ ビュー (Transact-SQL)](~/relational-databases/system-catalog-views/extended-events-catalog-views-transact-sql