次の方法で共有


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

適用対象:SQL Server

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

Profiler トレース イベント

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

イベント 説明
SQL Server イベント クラス リファレンス アセンブリの読み込み要求 (成功と失敗) の監視に使用されます。
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 パフォーマンス カウンターは、現在実行中の CLR 統合アプリケーションを追跡するために、sqlservr プロセス名でフィルター処理できます。

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

カタログ ビュー

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

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

動的管理ビュー

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

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