システム動的管理ビュー

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL データベース はいAzure SQL Managed Instance はいAzure Synapse Analytics はいParallel Data Warehouse

動的管理ビューと動的管理関数では、サーバーの状態情報が返されます。返された情報は、サーバー インスタンスのヘルス状態の監視、問題の診断、パフォーマンスのチューニングに使用できます。

重要

動的管理ビューおよび関数は、実装固有の内部状態データを返します。 これらのスキーマおよび返されるデータは、の将来のリリースで変更される可能性があり SQL Server ます。 そのため、今後のリリースの動的管理ビューおよび関数は、このリリースの動的管理ビューおよび関数と互換性がない可能性があります。 たとえば、の将来のリリースでは、 SQL Server 列リストの末尾に列を追加することにより、動的管理ビューの定義が拡張される可能性があります。 SELECT * FROM dynamic_management_view_name返される列の数が変更され、アプリケーションが中断される可能性があるため、実稼働コードでは構文を使用しないことをお勧めします。

動的管理ビューと関数には、次の2種類があります。

  • サーバー スコープの動的管理ビューと動的管理関数。 サーバーに対する VIEW SERVER STATE 権限が必要です。

  • データベース スコープの動的管理ビューと動的管理関数。 そのためには、データベースに対する VIEW DATABASE STATE 権限が必要です。

動的管理ビューのクエリ

動的管理ビューは、ステートメントで2部構成、 Transact-SQL 3 部構成、または4部構成の名前を使用して参照できます。 一方、動的管理関数は、 Transact-SQL ステートメントで2部構成または3部構成の名前を使用して参照できます。 動的管理ビューおよび関数は、ステートメント内で Transact-SQL 1 つの部分で構成される名前を使用して参照することはできません。

すべての動的管理ビューと動的管理関数は sys スキーマに含まれ、dm_* という名前付け規則に従います。 動的管理ビューまたは動的管理関数を使用するときには、sys スキーマを使用して、ビューまたは関数の名前にプレフィックスを付ける必要があります。 たとえば、動的管理ビュー dm_os_wait_stats をクエリするには、次のクエリを実行します。

SELECT wait_type, wait_time_ms  
FROM sys.dm_os_wait_stats;  

必要なアクセス許可

動的管理ビューまたは動的管理関数をクエリするには、オブジェクトに対する SELECT 権限と、VIEW SERVER STATE 権限または VIEW DATABASE STATE 権限が必要です。 これらの権限を使用することにより、動的管理ビューと動的管理関数に対するユーザーまたはログインのアクセスを選択的に制限できます。 これを行うには、まず master にユーザーを作成し、次にアクセスを禁止する動的管理ビューまたは動的管理関数に対するユーザーの SELECT 権限を拒否します。 その後、ユーザーのデータベースコンテキストに関係なく、これらの動的管理ビューまたは関数から選択することはできません。

注意

DENY が優先されるため、ユーザーが VIEW SERVER STATE 権限を許可されていても VIEW DATABASE STATE 権限が拒否された場合、ユーザーはサーバーレベルの情報を表示できますが、データベースレベルの情報は参照できません。

このセクションの内容

動的管理ビューおよび動的管理関数は、次のカテゴリに分類されています。

参照

Transact-sql)(サーバー権限を付与する
GRANT (データベースの権限の許可) (Transact-SQL)
システムビュー (Transact-sql)