マネージド データベース オブジェクトの監視とトラブルシューティング

適用対象:SQL Server

このトピックでは、SQL Serverで実行されているマネージド データベース オブジェクトとアセンブリの監視とトラブルシューティングに使用できるツールについて説明します。

プロファイラー トレース イベント

SQL Serverでは、データベース エンジンで発生するイベントを監視するための SQL トレースとイベント通知が提供されます。 SQL Trace は、指定されたイベントを記録することで、パフォーマンスのトラブルシューティング、データベース アクティビティの監査、テスト環境のサンプル データの収集、Transact-SQL ステートメントとストアド プロシージャのデバッグ、パフォーマンス分析ツール用のデータの収集に役立ちます。 詳細については、「 SQL トレース拡張イベント」を参照してください。

Event 説明
Assembly Load イベント クラス アセンブリの読み込み要求 (成功と失敗) の監視に使用されます。
SQL:BatchStarting イベント クラスSQL:BatchCompleted イベント クラス 開始または完了した Transact-SQL バッチに関する情報を提供します。
SP:Starting イベント クラスSP:Completed イベント クラス Transact-SQL ストアド プロシージャの実行を監視するために使用されます。
SQL:StmtStarting イベント クラスSQL:StmtCompleted イベント クラス CLR ルーチンと Transact-SQL ルーチンの実行を監視するために使用されます。

パフォーマンス カウンター

SQL Serverには、SQL Serverのインスタンスを実行しているコンピューターのアクティビティを監視するためにシステム モニターで使用できるオブジェクトとカウンターが用意されています。 オブジェクトは、SQL Server ロックや Windows プロセスなど、SQL Serverリソースです。 各オブジェクトには、監視するオブジェクトのさまざまな特性を示す 1 つ以上のカウンターが含まれます。 詳細については、「 SQL Server オブジェクトの使用」を参照してください。

Object 説明
SQL Server、CLR オブジェクト CLR での総実行時間です。

Windows システム モニター (PERFMON.EXE) カウンター

Windows システム モニター (PERFMON.EXE) ツールには、CLR 統合アプリケーションの監視に使用できるパフォーマンス カウンターがいくつか用意されています。 .NET CLR パフォーマンス カウンターを "sqlservr" プロセス名でフィルタリングすることにより、実行中の CLR 統合アプリケーションを追跡できます。

パフォーマンス オブジェクト 説明
SqlServer:CLR サーバーの CPU 統計を提供します。
.NET CLR Exceptions 1 秒あたりの例外数を追跡します。
.NET CLR Loading サーバーに読み込まれている AppDomains とアセンブリに関する情報を提供します。
.NET CLR Memory CLR のメモリ使用量に関する情報を提供します。 このオブジェクトを使用すると、メモリ使用量が大きすぎる場合に警告を出すことができます。
.NET Data Provider for SQL Server 1 秒あたりの接続数と切断数を追跡します。 このオブジェクトを使用すると、データベースの利用状況を監視できます。

カタログ ビュー

カタログ ビューは、SQL Server データベース エンジンによって使用される情報を返します。 カタログ ビューを使うことをお勧めします。カタログ ビューはカタログ メタデータに対する最も一般的なインターフェイスであり、これを使うのがこの情報のカスタマイズされた形式を取得、変換、提示するための最も効率的な方法であるためです。 ユーザーが使用できるすべてのカタログ メタデータは、カタログ ビューを介して公開されます。 詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。

カタログ ビュー 説明
sys.assemblies (Transact-SQL) データベースに登録されているアセンブリに関する情報を返します。
sys.assembly_references (Transact-SQL) 他のアセンブリを参照するアセンブリを示します。
sys.assembly_modules (Transact-SQL) アセンブリで定義されている関数、ストアド プロシージャ、およびトリガーに関する情報を返します。
sys.assembly_files (Transact-SQL) データベースに登録されているアセンブリ ファイルに関する情報を返します。
sys.assembly_types (Transact-SQL) アセンブリで定義されているユーザー定義型 (UDT) を示します。
sys.module_assembly_usages (Transact-SQL) CLR モジュールを定義しているアセンブリを示します。
sys.parameter_type_usages (Transact-SQL) ユーザー定義型のパラメーターに関する情報を返します。
sys.server_assembly_modules (Transact-SQL) CLR トリガーを定義しているアセンブリを示します。
sys.server_triggers (Transact-SQL) CLR トリガーなど、サーバー上にあるサーバーレベル DDL トリガーを示します。
sys.type_assembly_usages (Transact-SQL) ユーザー定義型を定義しているアセンブリを示します。
sys.types (Transact-SQL) データベースに登録されているシステム定義型およびユーザー定義型を返します。

動的管理ビュー

動的管理ビューと動的管理関数では、サーバーの状態情報が返されます。返された情報は、サーバー インスタンスのヘルス状態の監視、問題の診断、パフォーマンスのチューニングに使用できます。 詳細については、「 動的管理ビューと関数 (Transact-SQL)」を参照してください。

DMV (DMV) 説明
sys.dm_clr_appdomains (Transact-SQL) サーバー内の各アプリケーション ドメインに関する情報を提供します。
sys.dm_clr_loaded_assemblies (Transact-SQL) サーバー上に登録されている各マネージド アセンブリを示します。
sys.dm_clr_properties (Transact-SQL) ホストされている CLR に関する情報を返します。
sys.dm_clr_tasks (Transact-SQL) 実行中のすべての CLR タスクを示します。
sys.dm_exec_cached_plans (Transact-SQL) クエリ実行を高速化するために、SQL Serverによってキャッシュされるクエリ実行プランに関する情報を返します。
sys.dm_exec_query_stats (Transact-SQL) キャッシュされたクエリ プランの集計パフォーマンス統計を返します。
sys.dm_exec_requests (Transact-SQL) SQL Server内で実行されている各要求に関する情報を返します。
sys.dm_os_memory_clerks (Transact-SQL) CLR メモリ クラークを含め、SQL Server インスタンスで現在アクティブになっているすべてのメモリ クラークを返します。

参照

CLR (共通言語ランタイム) 統合のプログラミング概念