動的管理ビューおよび関数 (Transact-SQL)

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

重要な注意事項重要

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

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

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

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

動的管理ビューのクエリ

動的管理ビューは、Transact-SQL ステートメントで 2 部、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;

GO

必要な権限

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

注意

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

このセクションの内容

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

AlwaysOn 可用性グループの動的管理ビューおよび関数

インデックス関連の動的管理ビューおよび関数

変更データのキャプチャに関連した動的管理ビュー

I/O 関連の動的管理ビューおよび関数

変更の追跡に関連した動的管理ビュー

オブジェクト関連の動的管理ビューおよび関数

共通言語ランタイム関連の動的管理ビュー

クエリ通知関連の動的管理ビュー

データベース ミラーリング関連の動的管理ビュー

レプリケーション関連の動的管理ビュー

データベース関連の動的管理ビュー

リソース ガバナーの動的管理ビュー

実行関連の動的管理ビューおよび関数

セキュリティ関連の動的管理ビュー

拡張イベントの動的管理ビュー

Service Broker 関連の動的管理ビュー

Filestream および FileTable の動的管理ビュー (Transact-SQL)

SQL Server オペレーティング システム関連の動的管理ビュー

フルテキスト検索およびセマンティック検索の動的管理ビュー

トランザクション関連の動的管理ビューおよび関数

関連項目

参照

GRANT (サーバーの権限の許可) (Transact-SQL)

GRANT (データベースの権限の許可) (Transact-SQL)

システム ビュー (Transact-SQL)