Welcome to MSDN Blogs Sign in | Join | Help

SYSK 182: SQL -- Are We There Yet?

Want to know how long it’s estimated to take for your SQL long running SQL command to finish execution?  SQL 2005’s dynamic management view (DMV) sys.dm_exec_requests can help you estimate completion of long-running tasks.  The example below gives you the syntax to get an estimate for when your database backup or restore will be finished.

 

SELECT r.session_id AS [Session ID], r.command AS [Command Type],

      CONVERT(NUMERIC(6,2),r.percent_complete) AS [Percent Complete],

      CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20) AS [ETA Completion Time],

      CONVERT(NUMERIC(6,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed Min],

      CONVERT(NUMERIC(6,2),r.estimated_completion_time/1000.0/60.0) AS [ETA Min],

      CONVERT(NUMERIC(6,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours],

      -- also include actual command, helpful if several parallel backup/restore commands are running  

      CONVERT(VARCHAR(256),

            (SELECT SUBSTRING(text,r.statement_start_offset/2,

                  CASE WHEN r.statement_end_offset = -1 THEN 1000 ELSE (r.statement_end_offset-r.statement_start_offset)/2 END)

            FROM sys.dm_exec_sql_text(sql_handle))) AS Command

FROM sys.dm_exec_requests r 

WHERE command IN ('RESTORE DATABASE','BACKUP DATABASE')

 

Special thanks to Alexey Yeltsov for providing this solution.

 

 

Published Monday, August 21, 2006 5:29 AM by irenak
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker