viernes, abril 19, 2024

Tiempo estimado de finalización de restore o backup en 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

Roy Rojas
Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub
Roy Rojas
Roy Rojashttp://www.dotnetcr.com
Con más de 20 años de experiencia en programación, experto en lenguajes .NET, VB, C#, ASP.NET, Xamarin, XCode, DBA en SQL Server. Creador de dotnetcr.com, sitio web para programadores en español. royrojas.com | dotnetcr.com | GitHub