Quanto tempo vai demorar para…

Getting your Trinity Audio player ready...

Você já passou por aquela situação de ter que fazer um backup de uma base que não é imagepequena e não ter ideia de quanto tempo vai demorar? Você fica olhando aquela circulo maldito do SSMS rodando e rodando e nada, quando ele mostra alguma coisa é de 10% em 10%,,, Ou quando executa um script ele também fica nos 10% em 10%,,,

Isso é muito chato,,,

Estava passeando em alguns sites com scripts interessantes e alguns me chamaram a atenção:

No site Adventures in SQL achei o posto script é bem simples e muito interessante:

--http://adventuresinsql.com/2010/10/when-is-that-restore-going-to-finish/
--Quando meu backup vai acabar?
SELECT command,
session_id,
percent_complete,
DATEADD(ms, estimated_completion_time, GETDATE()) AS estimated_completion_time,
GETDATE(),
start_time
FROM MASTER.sys.dm_exec_requests
WHERE percent_complete >0

Ai, um pouco depois, achei um outro script um pouco mais completo no site do Aaron Bertrand (Blog | Twitter), ele mostra backup/restore e index reorg, a sessão, o comando,,,

--http://sqlblog.com/blogs/aaron_bertrand/archive/2009/07/30/when-will-my-backup-restore-index-reorganize-finish.aspx
--Quanto tempo meu backup/restore/index reorg vai demorar?
--NÃO funciona com bases com modo de compatibilidade 8
SELECT r.[session_id],
c.[client_net_address],
s.[host_name],
c.[connect_time],
[request_start_time]= s.[last_request_start_time],
[current_time]=CURRENT_TIMESTAMP,
r.[percent_complete],
[estimated_finish_time]=DATEADD (MILLISECOND, r.[estimated_completion_time], CURRENT_TIMESTAMP),
current_command =SUBSTRING (t., r.[statement_start_offset]/2, COALESCE(NULLIF(r.[statement_end_offset], -1)/2, 2147483647)),
module =COALESCE(QUOTENAME(OBJECT_SCHEMA_NAME(t.[objectid], t.[dbid])) +'.'+QUOTENAME(OBJECT_NAME(t.[objectid], t.[dbid])), '<ad hoc>')
FROM sys.dm_exec_requests AS r INNER JOIN sys.dm_exec_connections AS c
ON r.[session_id]= c.[session_id] INNER JOIN sys.dm_exec_sessions AS s
ON r.[session_id]= s.[session_id] CROSS APPLY sys.dm_exec_sql_text(r.[sql_handle]) AS t
WHERE r.[percent_complete]<>0;

Ambos são scripts para guardar no pendrive e levar sempre.

One thought on “Quanto tempo vai demorar para…”

Leave a Reply

Your email address will not be published. Required fields are marked *