動的管理ビューと関数について説明する
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 固有の情報が提供されます。