O SQL Server 2017 vem com várias exibições de gerenciamento dinâmico novas e aprimoradas e funções de gerenciamento dinâmico que ajudarão os DBAs a monitorar a integridade e o desempenho de instâncias do SQL Server. Alguns DMVs existentes, como sys.dm_os_sys_info e sys. dm_db_file_space_usage , foram aprimorados. Alguns também foram recém-construídos e estão disponíveis apenas para o SQL Server 2017.
- Banco de dados relacionado
- sys.dm_db_log_stats
- sys.dm_db_log_info
- sys.dm_db_stats_histogram
- sys.dm_db_file_space_usage
- sys.sys.dm_db_tuning_
recommendations
- Transação relacionada
- sys.dm_tran_version_store_
space_usage
- sys.dm_tran_version_store_
- Relacionado ao sistema operacional do SQL Server
- sys.dm_os_host_info
- sys.dm_os_sys_info
sys.dm_db_log_stats
Vamos dar uma olhada neles criando uma nova consulta aqui e digitando select * from . A primeira visão com a qual quero trabalhar é sys.dm_db_log _ stats . Ele requer o número do ID do banco de dados que você quer investigar, então eu vou digitar o número um dentro do parêntese para indicar o banco de dados mestre.
Vamos em frente e executar a declaração. Este DMV retorna informações sobre os arquivos de log de transação. As informações incluem o modelo de recuperação do banco de dados.
Podemos ver que o banco de dados Python2017 está usando o modelo de recuperação FULL. As outras colunas fornecem o tamanho total do log em megabytes. Além disso, podemos ver algumas informações sobre a última vez que o log foi feito backup. Nesse caso, o log de transações do banco de dados nunca foi submetido a backup, portanto, está relatando a partir de 1º de janeiro de 1900.
É tão fácil projetar os dados para o banco de dados inteiro através da junção cruzada com a visualização do sistema sys.databases. A saída derivada fornece informações muito úteis sobre o banco de dados e a estrutura de log.
sys.dm_db_log_info
O sys.dm_db log_info também lida com os arquivos de log. Requer o ID do banco de dados para entrada. Esta visão analisa especificamente os arquivos de log virtuais ou VLFs. Estes compõem o log de transações do banco de dados e ter um grande número de VLFs pode afetar negativamente o tempo de inicialização e recuperação do banco de dados. Com essa visão, podemos ver quantos VLFs seu banco de dados tem atualmente, junto com seu tamanho e status. Esta exibição de gerenciamento substitui o comando do console do banco de dados, informações de log do dbcc .
No exemplo a seguir, T-SQL, podemos ver que a saída do DMV é unida a sys.databases, uma visualização do sistema para obter dados consolidados sobre todos os bancos de dados da instância do SQL
sys.dm_db_tuning_recommendatio ns
O novo DMV retorna as informações detalhadas das recomendações de ajuste. Isso requer uma habilitação da opção de ajuste automático (Automatic tuning) . Se o mecanismo de banco de dados identificar o plano que está causando a regressão, uma sugestão será feita para corrigi-lo usando esse dmv.
sys.dm_tran_version_store_ space_usage
O sys.dm_tran_version_store_ space_usage é usado para controlar o uso do armazenamento de versão por banco de dados em tempdb. Isso é bastante útil no monitoramento proativo do dimensionamento de tempdb no requisito de uso de armazenamento de versão de cada banco de dados. Este DMV retorna o espaço de armazenamento de versão agregada consumido em tempdb por banco de dados. Não possui argumentos que precisem ser fornecidos. Os resultados mostram o databaseID, a contagem de páginas reservadas em tempdb para registros de armazenamento de versão e o espaço total em kilobytes.
Por exemplo, o banco de dados Python2017 é configurado com a opção ALLOW_SNAPSHOT_ISOLATION.
sys.dm_db_stats_histogram
O próximo dmv é sys.dm_db_stats_histogram . Ele requer dois argumentos, object_ID e um stats_ID que obtemos na visualização do sistema sys.stats . Este DMV é semelhante a dbcc show_statistics com o comando histogram.
Vamos dar uma olhada nas estatísticas desse objeto. Os resultados contêm detalhes sobre a frequência de ocorrência de cada valor distinto na tabela. Estes são os valores que o otimizador de consulta usa para ajudar a escolher um plano ao executar uma consulta.
Essa tabela em particular tinha 10.000 registros com um inteiro único em cada um. As linhas são avaliadas entre os intervalos 0 e 1, 1 e 9.999 e 10.000. Portanto, o histograma mostra que os dados são divididos em três etapas. A primeira etapa inclui os valores entre zero e a chave alta do intervalo de um. O segundo passo inclui os números entre 1 e 9999. Ele mostra que temos 99.997 registros que estão dentro desse intervalo e um registro que corresponde exatamente à chave alta de 9999. Finalmente, o último intervalo é para todos os números entre 9999 e 10000. Não há nenhum dentro desse intervalo, e há apenas um único que corresponde à chave alta.
sys.dm_os_host_info
O sys.dm_os_host_info retorna informações sobre o sistema operacional do host que a instância do servidor está executando. Isso também será executado em máquinas Linux e também identificará a distribuição do Linux.
sys.dm_os_sys_info
O sys.dm_os_sys_info retorna algumas informações úteis sobre os recursos usados, bem como disponíveis para a instância do SQL Server. As três colunas recém-adicionadas são:
- socket_count
- cores_per_socket
- numa_node_count
sys.dm_db_file_space_usage
O sys.dm_db_file_space_usage é o DMV que retorna informações de uso de espaço do banco de dados.
A coluna recém-adicionada coluna modified_extent_page_ count nos dá a flexibilidade para gerenciar backups. A contagem de páginas modificada pode ser usada para rastrear mudanças diferenciais no banco de dados desde o último backup completo para decidir se um backup diferencial é benéfico. A coluna é o número total de páginas modificadas nas extensões alocadas do arquivo desde o último backup completo do banco de dados.
Demo:
Vamos considerar uma estratégia de backup para VLDB
- Backup completo semanal
- Backup diferencial diário
- Backups de log por hora
O backup diferencial é uma coleção de páginas modificadas desde o último backup completo. O DMV sys.dm_db_file_space_usage introduz uma nova coluna chamada modified_extent_page_ count que nos fornece detalhes sobre as páginas modificadas desde o último backup completo. O valor dessa coluna é usado como referência para iniciar o processo de backup diferencial.
- Backup do banco de dados
- Consultar o sys.dm_db_file_space_usage
dmv - Validar a alteração diferencial, a quantidade de dados alterados desde o último backup completo; vemos uma mudança de 14,55% nos dados
- Construa a lógica para iniciar um processo de backup diferencial; no nosso caso, se houver uma alteração de 10% ou mais, um backup diferencial será iniciado
Wrapping up
A visão geral das novas exibições de gerenciamento dinâmico e das funções de gerenciamento dinâmico fornecidas com o SQL Server 2017 foi explicada em detalhes. Eles podem ser usados para obter mais informações sobre o status do sistema. Pode ser informativo e útil para os administradores entenderem os metadados pertencentes à instância do SQL Server. Para mim, o sys.dm_db_file_space_usage e o sys.dm_db_tuning_ recommendations são algo que eu estava procurando há muito tempo. E quanto a você? Fiquem à vontade para comentar.
Referências
Gustavo Damatto