Visões e funções de gerenciamento dinâmico do sistema

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Ponto de extremidade de análise de SQL no Microsoft FabricDepósito no Microsoft FabricBanco de dados SQL no Microsoft Fabric

Objetos de gerenciamento dinâmico incluem vistas de gerenciamento dinâmico (DMVs) e funções de gerenciamento dinâmico (DMFs). Esses objetos retornam informações sobre o estado do servidor que você pode usar para monitorar a saúde de uma instância de servidor, diagnosticar problemas e ajustar o desempenho.

Objetos de gerenciamento dinâmico são com escopo de servidor ou escopo de banco de dados.

Consultar objetos de gerenciamento dinâmico

Todos os objetos de gerenciamento dinâmico existem no sys esquema e seguem a convenção dm_*de nomes .

Quando você usa um objeto de gerenciamento dinâmico, deve prefixar o nome do objeto usando o sys esquema. Por exemplo, para consultar a visualização dm_os_wait_stats de gerenciamento dinâmico, execute a seguinte consulta:

SELECT wait_type,
       wait_time_ms
FROM sys.dm_os_wait_stats;

A tabela a seguir descreve como referenciar objetos de gerenciamento dinâmico no Transact-SQL:

Referência de T-SQL Modo de exibição de gerenciamento dinâmico Função de gestão dinâmica
Nomeação de uma só parte No No
Nomeação em duas partes Yes Yes
Nomeação em três partes Yes Yes
Nomeação em quatro partes Yes No

Observações

Objetos de gerenciamento dinâmico retornam dados internos de estado específicos da implementação. Seus esquemas e os dados que retornam podem mudar em futuras versões do Mecanismo de Banco de Dados. Portanto, objetos de gerenciamento dinâmico em versões futuras podem não ser compatíveis com os objetos de gerenciamento dinâmico desta versão.

Por exemplo, em futuras versões do Mecanismo de Banco de Dados, a Microsoft pode ampliar a definição de qualquer visão de gerenciamento dinâmico adicionando colunas ao final da lista de colunas. Não use a sintaxe SELECT * FROM dynamic_management_view_name em código de produção porque o número de colunas retornadas pode mudar e quebrar sua aplicação.

Permissions

Consultar um objeto de gerenciamento dinâmico requer SELECT permissão sobre o objeto e depende do escopo do objeto e da versão do Mecanismo de Banco de Dados do SQL Server:

Versão Escopo do servidor Escopo do banco de dados
SQL Server 2019 (15.x) e versões anteriores VIEW SERVER STATE VIEW DATABASE STATE
SQL Server 2022 (16.x) e versões posteriores VIEW SERVER PERFORMANCE STATE, ou VIEW SERVER SECURITY STATE para objetos relacionados à segurança VIEW DATABASE PERFORMANCE STATE, ou VIEW DATABASE SECURITY STATE para objetos relacionados à segurança

Para restringir o acesso seletivamente, crie o usuário ou faça master login e então negue essa permissão de usuário SELECT nas vistas ou funções específicas de gerenciamento dinâmico que você deseja bloquear. O usuário não pode selecionar entre esses objetos depois, independentemente do contexto do banco de dados.

Note

DENY tem precedência sobre GRANT. Por exemplo, um usuário concedido VIEW SERVER PERFORMANCE STATE , mas negado VIEW DATABASE PERFORMANCE STATE , pode ver informações em nível de servidor, mas não informações em nível de banco de dados.