適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric の SQL データベース
動的管理オブジェクトには 動的管理ビュー (DMV)や 動的管理関数 (DMF)が含まれます。 これらのオブジェクトはサーバーの状態情報を返し、サーバーインスタンスの健康状態を監視したり、問題を診断したり、パフォーマンスを調整したりすることができます。
動的管理オブジェクトは サーバースコープ またはデータベースス コープのいずれかです。
クエリ動的管理オブジェクト
すべての動的管理オブジェクトは sys スキーマ内に存在し、命名規則に従って dm_*。
動的管理オブジェクトを使用する場合は、 sys スキーマを使ってオブジェクト名を接頭辞に付ける必要があります。 例えば、 dm_os_wait_stats 動的管理ビューをクエリするには、以下のクエリを実行します。
SELECT wait_type,
wait_time_ms
FROM sys.dm_os_wait_stats;
以下の表は、Transact-SQLで動的管理オブジェクトを参照する方法を説明しています。
| T-SQL リファレンス | 動的管理ビュー | 動的管理機能 |
|---|---|---|
| 一部名の命名 | いいえ | いいえ |
| 二部構成の命名 | はい | はい |
| 三部構成の命名 | はい | はい |
| 四部構成の命名 | はい | いいえ |
注釈
動的管理オブジェクトは内部の実装固有の状態データを返します。 今後のデータベース エンジンリリースではスキーマや返されるデータが変更される可能性があります。 したがって、今後のリリースの動的管理オブジェクトは、このリリースの動的管理オブジェクトと互換性がない可能性があります。
例えば、今後のデータベース エンジンリリースでは、Microsoftが任意の動的管理ビューの定義を補強し、列リストの最後に列を追加するかもしれません。 本番コードでは構文 SELECT * FROM dynamic_management_view_name は使わないでください。戻される列数が変わってアプリケーションが壊れる可能性があります。
Permissions
動的管理オブジェクトのクエリにはオブジェクトの権限SELECT必要であり、オブジェクトのスコープやSQL Server データベース エンジンバージョンによって異なります。
| バージョン | サーバースコープ | データベース スコープ |
|---|---|---|
| SQL Server 2019(15.x)およびそれ以前のバージョン | VIEW SERVER STATE |
VIEW DATABASE STATE |
| SQL Server 2022 (16.x) 以降のバージョン |
VIEW SERVER PERFORMANCE STATEまたはセキュリティ関連オブジェクトの場合はVIEW SERVER SECURITY STATE |
VIEW DATABASE PERFORMANCE STATEまたはセキュリティ関連オブジェクトの場合はVIEW DATABASE SECURITY STATE |
アクセスを選択的に制限するには、ユーザーを作成またはログイン master 、ブロックしたい特定の動的管理ビューや機能に対してそのユーザーの SELECT 権限を拒否します。 ユーザーはその後、データベースのコンテキストに関係なくそれらのオブジェクトから選択することはできません。
Note
DENY は、GRANT よりも優先されます。 例えば、 VIEW SERVER PERFORMANCE STATE を付与されたが VIEW DATABASE PERFORMANCE STATE 却されたユーザーはサーバーレベルの情報を見ることができますが、データベースレベルの情報は見られません。