在SQL Server 2012(11.0.7001.0)下面在还原一个数据库(备份文件40多G大小,实际数据库大小300G),在还原过程中,出现一直等待ASYNC_IO_COMPLETION,如下测试截图所示,已经等待了72分钟了,但是还原比例依然为0%

 

SELECT  r.session_id ,
        r.command ,
        r.start_time,
        r.status,
        r.wait_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(10, 2), r.total_elapsed_time / 1000.0 / 60.0) AS [Elapsed Min] ,
        CONVERT(NUMERIC(10, 2), r.estimated_completion_time / 1000.0 / 60.0) AS [ETA Min] ,
        CONVERT(NUMERIC(10, 2), r.estimated_completion_time / 1000.0 / 60.0
        / 60.0) AS [ETA Hours] ,
        CONVERT(VARCHAR(1000), ( 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 CommandText
FROM    sys.dm_exec_requests r
WHERE   command IN ( 'RESTORE DATABASE', 'BACKUP DATABASE','RESTORE LOG' );

相关文章: