Descripción del rendimiento de la recuperación en SQL Server

El rendimiento de la recuperación se centra principalmente en la recuperación tras bloqueo en vez de la recuperación tras restaurar una copia de seguridad. Sin embargo, es posible realizar optimizaciones para la recuperación tras restaurar a partir de una copia de seguridad.

La duración de la recuperación está determinada por la cantidad de trabajo realizado desde el último punto de comprobación y por cuánto trabajo habían realizado todas las transacciones activas en el momento de la pérdida de datos. SQL Server utiliza una opción de configuración llamada intervalo de recuperación para establecer el número máximo aproximado de minutos por base de datos que SQL Server necesita para recuperar las bases de datos. Este valor de intervalo de recuperación controla la frecuencia de los puntos de comprobación. En un sistema de procesamiento de transacciones en línea (OLTP) con transacciones cortas, el intervalo de recuperación es el factor principal que determina la duración de la recuperación.

Tras la instalación, SQL Server establece el intervalo de recuperación en cero. Mientras el intervalo de recuperación se mantenga en su valor predeterminado y no haya transacciones de larga duración, la recuperación de cada base de datos debería tardar aproximadamente 1 minuto, o menos. Al recuperar datos restaurados, si había transacciones de larga duración activas en el momento de la pérdida de datos, la duración de la recuperación está controlada por el tiempo necesario para revertir los efectos de esas transacciones. Sin embargo, en SQL Server 2005 y versiones posteriores, la base de datos está disponible durante la fase de deshacer de una recuperación tras bloqueo o una conmutación por error en la creación de reflejo de base de datos, característica conocida como recuperación rápida.

Si la recuperación suele durar más de 1 minuto para cada base de datos, el valor del intervalo de recuperación es cero y no hay transacciones de larga duración que revertir, póngase en contacto con su proveedor principal de soporte para resolver el problema de rendimiento de la recuperación.

La recuperación informa de su progreso basado en los archivos de registro virtuales de una base de datos. La recuperación analiza y examina el registro al empezar la recuperación, desde el último punto de comprobación. Sobre la base de esta fase de análisis, la recuperación calcula la cantidad de entradas del registro que va a leer durante la recuperación. Dicha cantidad se utiliza para informar del progreso de la recuperación.

Si el valor del intervalo de recuperación ha cambiado y no es el valor predeterminado, la recuperación de la base de datos tarda ese número de veces más en completarse. Por ejemplo, si el intervalo de recuperación se cambia a 10, la recuperación tardaría aproximadamente 10 veces más en completarse que si el valor del intervalo de recuperación fuera el predeterminado de cero.

Cuando el registro crezca, utilice incrementos grandes en vez de pequeños para asegurarse de que el tiempo de inicio de SQL Server sea lo más corto posible. Cuanto más pequeños sean los incrementos, más tiempo tardará SQL Server en inicializarlos.

En la recuperación tras una operación de restauración, deje que el servidor finalice el proceso de reversión si se terminó una transacción de larga duración. La terminación del proceso del servidor durante la reversión de una transacción de larga duración hace que la duración de la recuperación sea larga. Si le preocupa la duración del proceso de reversión, solicite al administrador del sistema que confirme si hay actividad en el servidor.

Si tiene una transacción de larga duración y se produce el cierre del servidor durante la misma, SQL Server inicia el proceso de recuperación. En este caso, la velocidad de recuperación aumenta porque la base de datos está disponible durante la fase de deshacer.

Para ver las formas de reducir la duración de la recuperación al restaurar datos a partir de copias de seguridad en el modelo de recuperación completa, vea Reducir el tiempo de recuperación al restaurar una base de datos.