Descrever funções e exibições de gerenciamento dinâmico
O SQL Server fornece centenas de objetos de gerenciamento dinâmico. Esses objetos contêm informações do sistema que podem ser usadas para monitorar a integridade de uma instância do servidor, diagnosticar problemas e ajustar o desempenho. As funções e exibições de gerenciamento dinâmico retornam dados internos sobre o estado do banco de dados ou da instância. Os objetos de gerenciamento dinâmico podem ser exibições (DMVs) ou funções (DMFs), mas a maioria das pessoas usa o acrônimo DMV para se referir a ambos os tipos de objeto.
Há dois níveis de DMVs: com escopo de servidor e com escopo de banco de dados.
- Objetos com escopo de servidor – exigem a permissão
VIEW SERVER STATE
no servidor - Objetos com escopo de banco de dados – exigem a permissão
VIEW DATABASE STATE
dentro do banco de dados
Os nomes das DMVs são sempre prefixados com sys.dm_, seguido pela área funcional e pela função específica do objeto. O SQL Server dá suporte a três categorias de DMVs:
- Objetos de gerenciamento dinâmico relacionados ao banco de dados
- Objetos de gerenciamento dinâmico relacionados à execução da consulta
- Objetos de gerenciamento dinâmico relacionados à transação
Para saber mais sobre as consultas para monitorar o desempenho do servidor e do banco de dados, confira Monitorando o desempenho do Banco de Dados SQL do Microsoft Azure e da Instância Gerenciada de SQL do Azure usando exibições de gerenciamento dinâmico.
Observação
Para versões mais antigas do SQL Server nas quais o Repositório de Consultas não está disponível, você pode usar a exibição sys.dm_exec_cached_plans
em conjunto com as funções sys.dm_exec_sql_text
e sys.dm_exec_query_plan
para retornar informações sobre planos de execução. No entanto, ao contrário do Repositório de Consultas, você não poderá ver as alterações nos planos para determinada consulta.
O Banco de Dados SQL do Azure tem um conjunto de DMVs disponíveis um pouco diferente do SQL Server; alguns objetos estão disponíveis apenas no Banco de Dados SQL do Azure, enquanto outros só estão no SQL Server. Algumas têm o escopo definido no nível do servidor e não são aplicáveis no modelo do Azure (a DMV waits_stats abaixo é um exemplo de DMV com escopo de servidor), enquanto outras são específicas do Banco de Dados SQL do Azure, como sys.dm_db_resource_stats
, e fornecem informações específicas do Azure que não estão disponíveis (ou não são relevantes) no SQL Server.