Esta contribuição tem o objetivo apresentar como no Microsoft SQL Server a partir da versão 2008 podemos obter informações sobre a ocorrência de auto database growth information (Informações de autocrescimento de banco de dados) durante os processos de manipulação de dados ocorridos diretamente em um banco de dados, com base, nos comandos Select, Insert, Update e Delete, através de função de rastreamento de sistema sys.fn_trace_gettable em conjuto com os eventos de auditoria implementados no Microsoft SQL Server a partir da versão 2008, conhecimentos como Audit Events.

 

Auditoria no SQL Server permite criar auditorias de servidor, que podem conter especificações de auditoria de servidor para eventos de nível de servidor e as especificações de auditoria de banco de dados para eventos de nível de banco de dados. Eventos auditados podem ser escritos para os logs de eventos ou arquivos de auditoria. Existem vários níveis de auditoria do SQL Server, dependendo do gerenciador ou requisitos de normas para sua instalação. Auditoria do SQL Server fornece as ferramentas e os processos que você deve ter para habilitar, armazenar e visualizar as auditorias em vários objetos de servidor e banco de dados.   

 

Você pode gravar auditoria relacionadas a ações processadas por grupos de instância de servidor e os grupos de banco de dados. O evento de auditoria irá ocorrer sempre que a ação auditável é encontrada. Todas as edições do Microsoft SQL Server a partir da versão 2008 oferecem suporte a auditorias de nível de servidor.

 

Auditando a ocorrência de informações de autocrescimento de banco de dados

 

Por padrão as configurações de autocrescimento em um banco de dados existente no Microsoft SQL Server são definidas durante o processo de criação com base nas configurações e ajustes estabelecidas no banco de dados de sistema Model, mas isso não impossibilita de a qualquer momento os administradores de bancos de dados realizarem mudanças nestas configurações afim de obter um novo comportamento. A propridade de Auto Growth é uma das diversas propriedades existentes nos bancos de dados SQL Server definidas de forma padrão.

 

A partir da versão 2012 os times de engenheiros do SQL Server adicionar no conjunto de propriedades relacionadas as informações de processamento a propriedade denominada Sort Warnings, mas até a versão 2008 R2 não tinhamos esta informações em interface gráfica, sendo assim, tinhamos a necessidade de executar o bloco de código apresentado abaixo.

 

Através da função de rastreamento sys.fn_trace_gettable, como base a coluna EventClass filtradas pelos IDs 92 e 93 temos a capacidade de identificar em qual momento ocorreram os eventos relacionados ao autocrescimento de um banco de dados. 

 

O bloco de código apresentado abaixo é parte integrante do arquivo em anexo compartilhado nesta contribuição.

 

SQL
Editar Script|Remove
--DatabaseData & Log File Auto Grow -- 
SELECT DatabaseName, [FileName], 
       CASE EventClass  
        WHEN 92 THEN 'Data File Auto Grow'    
        WHEN 93 THEN 'Log File Auto Grow' 
       END AS EventClass, 
       DurationStartTime,  
       EndTimeSPID,  
       ApplicationNameLoginName  
FROM sys.fn_trace_gettable(@pathDEFAULTWHERE EventClass IN (92,93ORDER BY StartTime DESC