Health Check 01: server overview

Version, patch level, edition, uptime, CPUs, memory and the key server settings in one place. Part of my SQL Server health check: run Health Check 00 for a one-page summary, then the numbered scripts for the detail behind each area. Read-only, changes nothing. Tested on SQL Server 2017 and 2025.

-- 01_Server_Overview.sql - version, uptime, hardware and key settings. Read-only.  Clive Roberts DBA, 8 October 2026
SET NOCOUNT ON;
SELECT @@SERVERNAME AS server, SERVERPROPERTY('ProductVersion') AS version, SERVERPROPERTY('ProductLevel') AS level,
       SERVERPROPERTY('ProductUpdateLevel') AS cu, SERVERPROPERTY('Edition') AS edition,
       SERVERPROPERTY('IsClustered') AS is_clustered, SERVERPROPERTY('IsHadrEnabled') AS availability_groups,
       si.sqlserver_start_time AS started, DATEDIFF(DAY, si.sqlserver_start_time, GETDATE()) AS days_up,
       si.cpu_count AS cpus, si.hyperthread_ratio, si.physical_memory_kb / 1024 AS memory_mb,
       si.committed_kb / 1024 AS sql_memory_used_mb, si.virtual_machine_type_desc AS vm
FROM sys.dm_os_sys_info AS si;

SELECT servicename, status_desc, startup_type_desc, service_account, instant_file_initialization_enabled, last_startup_time
FROM sys.dm_server_services;

-- settings that differ from the out-of-the-box default
SELECT name, value_in_use, description
FROM sys.configurations
WHERE (name = N'max server memory (MB)' AND value_in_use <> 2147483647) OR (name = N'max degree of parallelism' AND value_in_use <> 0)
   OR (name = N'cost threshold for parallelism' AND value_in_use <> 5) OR (name = N'optimize for ad hoc workloads' AND value_in_use <> 0)
   OR (name = N'backup compression default' AND value_in_use <> 0) OR (name = N'remote admin connections' AND value_in_use <> 0)
   OR (name = N'xp_cmdshell' AND value_in_use <> 0) OR (name = N'clr enabled' AND value_in_use <> 0)
   OR (name = N'fill factor (%)' AND value_in_use <> 0) OR (name = N'min server memory (MB)' AND value_in_use <> 0)
ORDER BY name;