動的管理ビューと関数について説明する
SQL Server には、数百の動的管理オブジェクトが用意されています。 これらのオブジェクトには、サーバー インスタンスの正常性の監視、問題の診断、パフォーマンスのチューニングに使用できるシステム情報が含まれます。 動的管理ビューと動的管理関数からは、データベースまたはインスタンスの状態に関する内部データが返されます。 動的管理オブジェクトはビュー (DMV) または関数 (DMF) のどちらでもかまいませんが、ほとんどのユーザーは、頭字語 DMV を使用して両方の種類のオブジェクトを参照します。
DMV には、サーバー スコープとデータベース スコープという 2 つのレベルがあります。
- サーバー スコープのオブジェクト – サーバー上での
VIEW SERVER STATEアクセス許可が必要 - データベース スコープのオブジェクト – データベース内での
VIEW DATABASE STATEアクセス許可が必要
すべての DMV の名前は、先頭に sys.dm_ が付いており、その後に機能領域、オブジェクトの特定の機能が続きます。 SQL Server でサポートされている DMV のカテゴリは次の 3 つです。
- データベース関連の動的管理オブジェクト
- クエリ実行関連の動的管理オブジェクト
- トランザクション関連の動的管理オブジェクト
サーバーとデータベースのパフォーマンスを監視するクエリについては、「動的管理ビューを使用した Microsoft Azure SQL Database および Azure SQL Managed Instance のパフォーマンスの監視」を参照してください。
注
クエリ ストアが使用できない古いバージョンの SQL Server では、ビュー sys.dm_exec_cached_plans を関数 sys.dm_exec_sql_text と sys.dm_exec_query_plan と共に使用して、実行プランに関する情報を返すことができます。 ただし、クエリ ストアとは異なり、特定のクエリのプランに変更を表示することはできません。
Azure SQL Database と SQL Server では、使用できる DMV のセットが若干異なります。Azure SQL Database のみで使用できるオブジェクトと、SQL Server のみで使用できるオブジェクトがあります。 一部はサーバー レベルでスコープが設定されており、Azure モデルでは適用できません ( waits_stats DMV はサーバー スコープ DMV の例です)。一方で、 sys.dm_db_resource_stats など、Azure SQL Database に固有であり、SQL Server で使用できない (または関連する) Azure 固有の情報を提供するものがあります。