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

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.

É isso aí, pessoal!
Espero que esta dica ajude vocês de alguma forma.

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

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

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

Deixe uma resposta