Estou usando notificações de eventos para capturar dados e registrar eventos de crescimento automático de arquivos para todos os bancos de dados em meus servidores. Estou usando os dados para análise da configuração de armazenamento do banco de dados.
Ao observar os dados, notei que a duração média do crescimento do log de transações está bem acima de qualquer coisa que eu esperaria, o que me leva a pensar que estou interpretando mal os dados ou negligenciando algo relacionado ao funcionamento do autocrescimento do log de transações.
Este é um exemplo de um evento de crescimento de arquivo de log que foi capturado hoje:
<EVENT_INSTANCE>
<EventType>LOG_FILE_AUTO_GROW</EventType>
<PostTime>2013-08-29T11:14:26.447</PostTime>
<SPID>97</SPID>
<DatabaseID>32</DatabaseID>
<NTDomainName />
<HostName>[cleansed]</HostName>
<ClientProcessID>4884</ClientProcessID>
<ApplicationName>.Net SqlClient Data Provider</ApplicationName>
<LoginName>[cleansed]</LoginName>
<Duration>4173000</Duration>
<StartTime>2013-08-29T11:14:22.263</StartTime>
<EndTime>2013-08-29T11:14:26.437</EndTime>
<IntegerData>64000</IntegerData>
<ServerName>[cleansed]</ServerName>
<DatabaseName>MyDB</DatabaseName>
<FileName>MyDB_log</FileName>
<LoginSid>[cleansed]</LoginSid>
<EventSequence>14637017</EventSequence>
<IsSystem />
<SessionLoginName>[cleansed]</SessionLoginName>
</EVENT_INSTANCE>
Como a duração é relatada em milissegundos , estou lendo isso porque leva 69,54 minutos para aumentar o arquivo. O crescimento automático para este arquivo de log é definido como 512 MB (limitado a 2 TB)
SELECT
growth AS GrowthPages,
growth*8/1000 AS GrowthMB,
max_size,
is_percent_growth
FROM MyDB.sys.database_files
WHERE type=1
GrowthPages GrowthMB max_size is_percent_growth
64000 512 268435456 0
Todos os bancos de dados registram no mesmo volume que está conectado a uma SAN via canal de fibra. (Eu teria que entrar em contato com nosso administrador de SAN para obter mais detalhes sobre a configuração de armazenamento, se necessário).
A instância é SQL 2012 Enterprise, o servidor é Windows 2008 R2 Enterprise.
Por que levaria mais de uma hora para aumentar o log em 512 MB? Não estamos percebendo um atraso nas operações em nenhum desses bancos de dados (a menos que estejamos apenas ignorando). Há um punhado de outros bancos de dados com duração semelhante; suas configurações de crescimento automático são as mesmas. Outros bancos de dados com configurações de autocrescimento menores têm durações proporcionalmente menores.
Você está olhando para o SQL Trace. Duração de registros de eventos estendidos em microssegundos ( embora alguns dados sejam relatados em milissegundos , a duração não é afetada). Você pode ver que o evento levou menos de 5 segundos:
E também apenas para confirmar (embora esteja um pouco errado devido ao arredondamento de milissegundos no tipo de dados datetime):