quarta-feira, 20 de abril de 2016

Scripts: Ultimo restart do servidor SQL SERVER

Em alguns bate papos do café, foi questionado se era possível determinar a quanto tempo um servidor SQL SERVER estava operando. Se existiam algumas funções nativas, para detalhar data e hora do ultimo restart. Funções atualmente não, não que eu as conheça, mas é possivel determinar há quanto a instancia do service esta UP, podemos gerir as seguintes informações:

USE [master]
-- Verifica quando o TEMPDB foi criado (durante o startup do serviço)
DECLARE @starttime datetime
SET @starttime = (SELECT crdate FROM sysdatabases WHERE name = 'tempdb' )

--Hora atual
DECLARE @currenttime datetime
SET @currenttime = GETDATE()

-- Criação das variaveis para dias, horas e minutos
DECLARE @difference_dd int
DECLARE @difference_hh int
DECLARE @difference_mi int

--Determina quantos minutos passaram desde a criação do TEMPDB 
SET @difference_mi = (SELECT DATEDIFF(mi, @starttime, @currenttime))

--Determina quantos dias passaram desde a criação do TEMPDB
SET @difference_dd = (@difference_mi/60/24)

--Subtrai os dias dos minutos
SET @difference_mi = @difference_mi - (@difference_dd*60)*24

--Determina o número de horas que passaram desde a criação do TEMPDB
SET @difference_hh = (@difference_mi/60)

-- Subtrai as horas dos minutos
SET @difference_mi = @difference_mi - (@difference_hh*60)

--Mensagem 
PRINT 'Time since SQL Server service was started: ' +

CONVERT(varchar, @difference_dd) + ' days 'CONVERT(varchar, @difference_hh) + ' hours ' + CONVERT(varchar, @difference_mi) + ' minutes.'


Depois é só jogar tudo pra uma procedure e executar direto;
Fica mais pratico ;)

Resultado:

Nenhum comentário:

Postar um comentário