Kiedy shrinkujesz bazę, mimo tego, że dobrze wiadomo, że shrinkowanie nie jest dobre, no ale czasem trzeba, a obawiasz się o zablokowanie bazy na długi długi czas, możesz wykonywać pomiejszanie pliku etapami. Np zamiast pomniejszyć ją o 50 GB na raz, zmniejsz ją po 5 GB w 10 krokach.
Zawsze to masz jakąś kontrolę nad procesem shrink. Jeśli już jednak zapuściłeś dużego shrinka, a wykonanie trwa i trwa, to pewnie chciałbyś wiedzieć kiedy się skończy.
Poniższe zapytanie spróbuje mniej więcej wyznaczyć czas zakończenia polecenia:
SELECT command, percent_complete, start_time, CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ’ hour(s), ’ + CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, ’ + CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ’ sec’ as running_time, CAST((estimated_completion_time/3600000) as varchar) + ’ hour(s), ’ + CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, ’ + CAST((estimated_completion_time %60000)/1000 as varchar) + ’ sec’ as est_time_to_go, dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time, s.text FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) s where command=’dbccFilesCompact’Skomplikowane obliczenia CAST… mają na celu przedstawienie czasu zakończenia polecenia w czytelnej dla człowieka formie.
Komentarze:
A żeby sprawdzić kiedy się skończy CHECKDDB zmień
SELECT command, percent_complete, start_time,
CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ’ hour(s), ’
+ CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, ’
+ CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ’ sec’ as running_time,
CAST((estimated_completion_time/3600000) as varchar) + ’ hour(s), ’
+ CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, ’
+ CAST((estimated_completion_time %60000)/1000 as varchar) + ’ sec’ as est_time_to_go,
dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time,
s.text
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) s
where command like 'DBCC%’
[…] http://www.mobilo24.eu/kiedy-sie-skonczy-shink/ […]