Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

Monitorando os eventos de crescimento automático de espaço (Autogrowth) em databases no SQL Server

Post Views 2,155 views
Reading time 3 minutes

Olá leitores,
Boa tarde!

Neste post vou demonstrar como monitorar o crescimento automático de espaço de um database (autogrowth) no SQL Server, de modo que seja possível identificar o usuário que causou o crescimento e quando os eventos de crescimento automático ocorreram no database.

A obtenção desses resultados é possível graças a função de sistema ::fn_trace_gettable, que permite consultar os eventos do trace que é executado por padrão em todas as instâncias SQL Server.

Criando um banco de teste

Antes de testarmos a query que nos mostra os eventos de AutoGrowth do database, vamos criar um banco de testes, com as opções padrão do SQL Server (tamanho inicial 5 MB e autogrowth a cada 1 MB) e inserir alguns registros para forçar que acaba o espaço e o banco tenha que crescer automaticamente.

Seu database deve ter agora 788 MB e ter realizado o crescimento automático de espaço centenas de vezes. Vamos agora descobrir quando foram esses eventos e quem causou o aumento de espaço.

Para ficar mais legal o teste, sugiro abrir duas conexões com usuários diferentes e inserir os dados ao mesmo tempo.

Identificando os tipos de eventos do trace

Utilizando a query abaixo, podemos identificar rapidamente todos os EventClass que podemos utilizar na função ::fn_trace_gettable:

SQL Server - fn_trace_gettable EventClass

Verificando os eventos de crescimento

Agora que a nossa base de testes está feita e os dados já foram inseridos, vamos analisar os eventos de AutoGrowth do database através da query abaixo:

SQL Server - Monitor Autogrowth

Com isso conseguimos analisar qual o database que sofreu o evento de autogrowth, qual o arquivo específico, quanto tempo o servidor demorou pra realizar o aumento do espaço, quanto de espaço foi aumentado, qual o software que está processando a query que causou o aumento do espaço, hostname e login do usuário que está executando essa query.

And that's it, folks!
Espero que esta dica ajude vocês de alguma forma.

Abraços e até o próximo post!