Percent_Complete – dm_exec_requests

Oopps! Upgrade your browser pretty please. Oopps! Upgrade your browser pretty please.

Hur ofta skulle man inte vilja veta när vissa operationer beräknas vara klara. Detta är faktiskt möjligt i SQL Server och med dessa: 

  • ALTER INDEX REORGANIZE
  • AUTO_SHRINK option with ALTER DATABASE
  • BACKUP DATABASE
  •  DBCC CHECKDB
  • DBCC CHECKFILEGROUP
  • DBCC CHECKTABLE
  • DBCC INDEXDEFRAG
  • DBCC SHRINKDATABASE
  • DBCC SHRINKFILE
  • RECOVERY
  • RESTORE DATABASE
  • ROLLBACK
  • TDE ENCRYPTION

Ett exempel nedan med RESTORE :

Detta har man otroligt stor hjälp av och hur ofta får vi inte frågan “När är det klart ?”, och här får vi i alla fall en beräknad tid samt att man ser att någonting faktiskt händer.

Koden följer här:

SELECT  session_id ,
        percent_complete ,
        cpu_time ,
        total_elapsed_time ,
        start_time ,
        CASE WHEN estimated_completion_time < 36000000 THEN '0'
             ELSE ''
        END + RTRIM(estimated_completion_time / 1000 / 3600) + ':' + RIGHT('0'
                                                              + RTRIM(( estimated_completion_time
                                                              / 1000 ) % 3600
                                                              / 60), 2) + ':'
        + RIGHT('0' + RTRIM(( estimated_completion_time / 1000 ) % 60), 2) estimate_completion_hh_mm_ss ,
        DATEADD(n, ( estimated_completion_time / 60 / 1000 ), GETDATE()) AS estimated_completion_time ,
        command
FROM    sys.dm_exec_requests
WHERE   percent_complete > 0