Thursday, February 25, 2021

Check Uptime of SQL server

It is important to find out for how long the SQL server is up & running to diagnose any issues. Here is one of the scripts which I use almost every day to find the uptime of the Server.

SET NOCOUNT ON;

DECLARE @UpTime VARCHAR(12)
	,@StartDate DATETIME
	,@sqlmajorver INT
	,@sqlcmd NVARCHAR(500)
	,@params NVARCHAR(500)

SELECT @sqlmajorver = CONVERT(INT, (@@microsoftversion / 0x1000000) & 0xFF);

IF @sqlmajorver = 9
BEGIN
	SET @sqlcmd = N'SELECT @StartDateOUT = login_time, @UpTimeOUT = DATEDIFF(mi, login_time, GETDATE()) FROM master..sysprocesses WHERE spid = 1';
END
ELSE
BEGIN
	SET @sqlcmd = N'SELECT @StartDateOUT = sqlserver_start_time, @UpTimeOUT = DATEDIFF(mi,sqlserver_start_time,GETDATE()) FROM sys.dm_os_sys_info';
END

SET @params = N'@StartDateOUT DATETIME OUTPUT, @UpTimeOUT VARCHAR(12) OUTPUT';

EXECUTE sp_executesql @sqlcmd
	,@params
	,@StartDateOUT = @StartDate OUTPUT
	,@UpTimeOUT = @UpTime OUTPUT;

SELECT @@servername AS ServerName
	,GETDATE() AS [Current_Time]
	,@StartDate AS Last_Startup
	,CONVERT(VARCHAR(4), @UpTime / 60 / 24) + 'd ' + CONVERT(VARCHAR(4), @UpTime / 60 % 24) + 'h ' + CONVERT(VARCHAR(4), @UpTime % 60) + 'm' AS Uptime
	,@@version AS Version
GO


Hope it helps !!


No comments:

Post a Comment

Extract DB Permission

Script to extract DB permissions   SET NOCOUNT ON GO SELECT 'Use ' + db_name ( ) PRINT 'go' GO SELECT 'EX...