Saltear al contenido principal

Qué es Accelerated Database Recovery en SQL Server 2019

¿Quién no tiene queries que se toman una eternindad en ejecutarse? Lo peor es cuando decides cancelar su ejecución y el famoso rollback se toma más del doble del tiempo que estaba ejecutándose. Este tipo de eventos ha inspirado esta espectacular característica: el Accelerated Database Recovery en SQL Server 2019.

Seguramente ya viste qué trae de nuevo SQL Server 2019, y uno de los títulos más novedosos es justamente este. Sin conocerlo suena a una recuperación impulsada con tiempos menores, ¿cierto? Veamos cómo funciona.

Las principales funciones de ADR

  • Recuperación de Base de Datos de manera rápida y consistente
  • Rollback de transacciones de manera instantánea
  • Log truncation “agresivo”

Un proyecto que fue soñado el año 2015 por Hanuma Kodavalla como Constant Time Recovery se hizo realidad con la ayuda de varios Ingenierios en Microsoft.

La promesa es que las transacciones de larga duración (long running transactions) no impacten el tiempo de recuperación intependientemente del número de transacciones o de su tamaño. Que los procesos de rollback puedan ser ejecutados inmediatamente y que el log de transacciones pueda ser truncado incluso mientras la transacción se ejecuta para así evitar su crecimiento indiscriminado.

Todo el concepto técnico sobre el uso de las fases de recuperación en Base de Datos respecto al Analysis, Redo y Undo se encuentra en la documentación oficial.

Accelerated Database Recovery

Siempre lo vemos mejor con un video.

De esta forma podemos ver una tremenda optimización de la recuperación de una base de datos ante una caída imprevista durante una carga masiva de datos. Si quieres ejecutarlo por tu cuenta puedes seguir el mismo flujo con esta guía.

Ahora bien, qué pasaría durante un proceso de rollback en el servidor.

Seguro que en algún momento de tu vida cancelaste una consulta de larga duración. Puede ser a través de una ejecución de KILL, pero esto implica hacer un trabajo de ROLLBACK. Veremos en este ejemplo cómo mejoramos estos tiempos de recuperación.

¡Espectacular!

¿Viste la diferencia de tiempos al ejecutar el Rollback?

Estas son grandes mejoras

Aquí el flujo

Pablo Javier Fernández

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Close search

Carrito

Volver arriba