Представления и функции управления системой динамики

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsСистема платформы аналитики (PDW)Конечная точка SQL аналитики в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в Microsoft Fabric

Динамические объекты управления включают динамические представления управления (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 Database Engine:

Версия Область действия сервера Область базы данных
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 , может видеть информацию на уровне сервера, но не информацию на уровне базы данных.