マネージド データベース オブジェクトの監視とトラブルシューティング
適用対象: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 インスタンスで現在アクティブなすべてのメモリ クラークを返します。 |