Tiempo estimado de finalización de restore o backup en SQL Server

4
14628
SQL Server

Cuando se hacen ‘restore’ o ‘backup’ en bases de datos SQL Server muy grandes, estos procesos pueden durar muchos minutos o en algunos casos horas y no vemos resultado hasta que se termina el proceso.

SQL Server brinda el procedimiento almacenado sys.dm_exec_requests, con el cual se puede ver esta información, pero si queremos ver como se interpreta puede ser un poco complicado.

Con el siguiente script podemos ver el porcentaje de avance, minutos pendientes y tiempo estimado de finalización del proceso.

SELECT r.session_id,
       r.command Comando,
       CONVERT(NUMERIC(10, 2), r.percent_complete) AS 'Porcentaje',
       CONVERT(NUMERIC(10,2), r.total_elapsed_time / 1000.0 / 60.0) AS 'Tiempo transcurrido',
       CONVERT(VARCHAR(20), Dateadd(ms, r.estimated_completion_time, Getdate()),20) AS 'Estimado finalización',
       CONVERT(NUMERIC(10, 2), r.estimated_completion_time/1000.0/60.0) AS 'Minutos pendientes',
       CONVERT(NUMERIC(10,2), r.estimated_completion_time/1000.0/60.0/60.0) AS 'Horas pendientes'
FROM  sys.dm_exec_requests r
WHERE r.command IN (
         'RESTORE VERIFYON', 'RESTORE DATABASE',
         'BACKUP DATABASE','RESTORE LOG','BACKUP LOG', 
         'RESTORE HEADERON', 'DbccFilesCompact')
  • dm_exec_requests
  • Tiempo de finalización de procesos en SQL Server

4 COMMENTS

  1. Este es el comando que uso para hacer un backup
    BACKUP DATABASE prueba TO DISK = N’c:\admin\respaldos\prueba33.bak’ WITH CHECKSUM

    donde se debe colocar esa linea en el codigo anterior

    • Hola, eso lo debes de hacer en dos procesos distintos. Primero pones a realizar el backup y después en otra sesion (otra ventana) puedes consultar el avance de ese proceso, y estarle dando F5 a la consulta, ahi vas a ver el avance 5%, 10%, 80%, etc.

Responder a JC Cancel reply

Please enter your comment!
Please enter your name here