SQL 2005: Podemos determinar quanto o trabalho de manutenção do índice de reconstrução pode aumentar os arquivos de log do banco de dados?

10

No SQL Server 2005, se todos os bancos de dados estiverem no modo Completo (com backups de log de transações por hora), é possível determinar se a reconstrução de todos os índices de um banco de dados pode aumentar o arquivo de log de um banco de dados? E quanto isso pode crescer?

Se não houver uma resposta direta, todas as direções serão realmente bem-vindas.

Desde já, obrigado.

Manjot
fonte

Respostas:

9

Sim, você deve examinar o excelente whitepaper sobre este tópico, embora se refira à reconstrução do índice on-line, ele ainda possui muitas informações boas

http://technet.microsoft.com/en-us/library/cc966402.aspx

Se os arquivos de log estiverem crescendo automaticamente, você poderá encontrar essas informações usando o rastreio padrão após a conclusão da ação.

DECLARE @filename VARCHAR(255) 
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'  
FROM sys.traces   
WHERE is_default = 1;  

--Check if the data and log files auto-growed. Look for tempdb, log files etc.
SELECT 
    gt.ServerName
    , gt.DatabaseName
    , gt.TextData
    , gt.StartTime
    , gt.Success
    , gt.HostName
    , gt.NTUserName
    , gt.NTDomainName
    , gt.ApplicationName
    , gt.LoginName
FROM [fn_trace_gettable](@filename, DEFAULT) gt 
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id 
WHERE EventClass in ( 92, 93 ) --'Data File Auto Grow', 'Log File Auto Grow'
ORDER BY StartTime; 
--
Sankar Reddy
fonte
7

Não é apenas possível detectar se as operações DDL do índice aumentam o arquivo de log, é a linha de ação padrão. Todas as operações de índice são registradas em um banco de dados que usa o modelo de recuperação completa.

Recomendamos que você leia o seguinte artigo no MSDN: Determinando os requisitos de espaço em disco do índice .

No capítulo 3 - Espaço em disco do log de transações para operações de índice desse artigo, cito:

" Operações de índice em larga escala podem gerar grandes cargas de dados que podem fazer com que o log de transações seja preenchido rapidamente. Para garantir que a operação de índice possa ser revertida, o log de transações não poderá ser truncado até que a operação de índice seja concluída; no entanto, o log pode ser feito backup durante a operação de índice.Portanto, o log de transações deve ter espaço suficiente para armazenar as transações de operação de índice e quaisquer transações de usuário simultâneas durante a operação de índice.Isso vale para operações de índice offline e online. Como as tabelas subjacentes não podem ser acessadas durante uma operação de índice offline, pode haver poucas transações do usuário e o log pode não crescer tão rapidamente. As operações de índice online não impedem a atividade simultânea do usuário; portanto, operações de índice online em larga escala combinadas com transações simultâneas significativas do usuário podem causar crescimento contínuo do log de transações sem uma opção para truncar o log. "

Marian
fonte