動的管理ビューと関数について説明する

完了

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 固有の情報が提供されます。