次の方法で共有


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

適用対象: SQL サーバー

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

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

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

イベント 説明
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 統合アプリケーションを追跡できます。

Performance オブジェクト 説明
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) データベースに登録されているシステム定義型およびユーザー定義型を返します。

動的管理ビュー

動的管理ビューと動的管理関数では、サーバーの状態情報が返されます。返された情報は、サーバー インスタンスのヘルス状態の監視、問題の診断、パフォーマンスのチューニングに使用できます。 詳細については、「 Dynamic Management Views and Functions (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 (共通言語ランタイム) 統合のプログラミング概念