SQL 2005: ¿Podemos determinar cuánto el trabajo de mantenimiento de índice de reconstrucción puede hacer crecer los archivos de registro de la base de datos?

10

En SQL Server 2005, si todas las bases de datos están en modo Completo (con copias de seguridad de registro de transacciones por hora), ¿es posible determinar si la reconstrucción de todos los índices de una base de datos puede hacer crecer el archivo de registro de una base de datos? ¿Y cuánto puede crecer?

Si no hay una respuesta directa, cualquier dirección sería realmente apreciada.

Gracias por adelantado.

Manjot
fuente

Respuestas:

9

Sí, debería mirar el excelente documento técnico sobre este tema, aunque se refiere a la reconstrucción del índice en línea, todavía tiene mucha buena información

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

Si los archivos de registro crecen automáticamente, puede encontrar esa información utilizando el rastreo predeterminado después de que se complete la acción.

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
fuente
7

No solo es posible detectar si las operaciones de índice DDL aumentan el archivo de registro, es la línea de acción predeterminada. Todas las operaciones de índice se registran en una base de datos que utiliza el modelo de recuperación completa.

Le aconsejo que lea el siguiente artículo sobre MSDN: Determinación de los requisitos de espacio en disco del índice .

Del tercer capítulo: Espacio en disco del registro de transacciones para operaciones de índice de ese artículo, citaré:

" Las operaciones de índice a gran escala pueden generar grandes cargas de datos que pueden hacer que el registro de transacciones se llene rápidamente. Para asegurarse de que la operación de índice pueda revertirse, el registro de transacciones no puede truncarse hasta que la operación de índice se haya completado; sin embargo, el registro se puede realizar una copia de seguridad durante la operación de índice. Por lo tanto, el registro de transacciones debe tener espacio suficiente para almacenar tanto las transacciones de operación de índice como cualquier transacción de usuario simultánea durante la operación de índice.Esto es cierto tanto para las operaciones de índice fuera de línea como en línea. Debido a que no se puede acceder a las tablas subyacentes durante una operación de índice fuera de línea, puede haber pocas transacciones de usuario y el registro puede no crecer tan rápido. Las operaciones de índice en línea no impiden la actividad concurrente del usuario, por lo tanto, las operaciones de índice en línea a gran escala combinadas con transacciones significativas de usuarios concurrentes pueden causar un crecimiento continuo del registro de transacciones sin una opción para truncar el registro. "

Mariana
fuente