Skip to content

#3657 sp_Blitz 2025 configurations #3658

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Documentation/sp_Blitz_Checks_by_Priority.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ Before adding a new check, make sure to add a Github issue for it first, and hav

If you want to change anything about a check - the priority, finding, URL, or ID - open a Github issue first. The relevant scripts have to be updated too.

CURRENT HIGH CHECKID: 268.
If you want to add a new one, start at 269.
CURRENT HIGH CHECKID: 269.
If you want to add a new one, start at 270.

| Priority | FindingsGroup | Finding | URL | CheckID |
|----------|-----------------------------|---------------------------------------------------------|------------------------------------------------------------------------|----------|
Expand Down Expand Up @@ -242,6 +242,7 @@ If you want to add a new one, start at 269.
| 200 | Non-Default Server Config | user options | https://www.BrentOzar.com/go/conf | 1063 |
| 200 | Non-Default Server Config | Web Assistant Procedures | https://www.BrentOzar.com/go/conf | 1064 |
| 200 | Non-Default Server Config | xp_cmdshell | https://www.BrentOzar.com/go/conf | 1065 |
| 200 | Non-Default Server Config | Configuration Changed | https://www.BrentOzar.com/go/conf | 269 |
| 200 | Performance | Buffer Pool Extensions Enabled | https://www.BrentOzar.com/go/bpe | 174 |
| 200 | Performance | Default Parallelism Settings | https://www.BrentOzar.com/go/cxpacket | 188 |
| 200 | Performance | In-Memory OLTP (Hekaton) In Use | https://www.BrentOzar.com/go/hekaton | 146 |
Expand Down
304 changes: 134 additions & 170 deletions sp_Blitz.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2320,177 +2320,141 @@ AS

IF @Debug IN (1, 2) RAISERROR('Generating default configuration values', 0, 1) WITH NOWAIT;

INSERT INTO #ConfigurationDefaults
VALUES ( 'access check cache bucket count', 0, 1001 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'access check cache quota', 0, 1002 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'Ad Hoc Distributed Queries', 0, 1003 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'affinity I/O mask', 0, 1004 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'affinity mask', 0, 1005 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'affinity64 mask', 0, 1066 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'affinity64 I/O mask', 0, 1067 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'Agent XPs', 0, 1071 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'allow updates', 0, 1007 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'awe enabled', 0, 1008 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'backup checksum default', 0, 1070 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'backup compression default', 0, 1073 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'blocked process threshold', 0, 1009 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'blocked process threshold (s)', 0, 1009 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'c2 audit mode', 0, 1010 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'clr enabled', 0, 1011 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'common criteria compliance enabled', 0, 1074 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'contained database authentication', 0, 1068 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'cost threshold for parallelism', 5, 1012 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'cross db ownership chaining', 0, 1013 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'cursor threshold', -1, 1014 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'Database Mail XPs', 0, 1072 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'default full-text language', 1033, 1016 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'default language', 0, 1017 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'default trace enabled', 1, 1018 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'disallow results from triggers', 0, 1019 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'EKM provider enabled', 0, 1075 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'filestream access level', 0, 1076 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'fill factor (%)', 0, 1020 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'ft crawl bandwidth (max)', 100, 1021 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'ft crawl bandwidth (min)', 0, 1022 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'ft notify bandwidth (max)', 100, 1023 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'ft notify bandwidth (min)', 0, 1024 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'index create memory (KB)', 0, 1025 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'in-doubt xact resolution', 0, 1026 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'lightweight pooling', 0, 1027 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'locks', 0, 1028 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'max degree of parallelism', 0, 1029 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'max full-text crawl range', 4, 1030 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'max server memory (MB)', 2147483647, 1031 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'max text repl size (B)', 65536, 1032 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'max worker threads', 0, 1033 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'media retention', 0, 1034 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'min memory per query (KB)', 1024, 1035 );
/* Accepting both 0 and 16 below because both have been seen in the wild as defaults. */
IF EXISTS ( SELECT *
FROM sys.configurations
WHERE name = 'min server memory (MB)'
AND value_in_use IN ( 0, 16 ) )
INSERT INTO #ConfigurationDefaults
SELECT 'min server memory (MB)' ,
CAST(value_in_use AS BIGINT), 1036
FROM sys.configurations
WHERE name = 'min server memory (MB)';
ELSE
INSERT INTO #ConfigurationDefaults
VALUES ( 'min server memory (MB)', 0, 1036 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'nested triggers', 1, 1037 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'network packet size (B)', 4096, 1038 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'Ole Automation Procedures', 0, 1039 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'open objects', 0, 1040 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'optimize for ad hoc workloads', 0, 1041 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'PH timeout (s)', 60, 1042 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'precompute rank', 0, 1043 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'priority boost', 0, 1044 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'query governor cost limit', 0, 1045 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'query wait (s)', -1, 1046 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'recovery interval (min)', 0, 1047 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'remote access', 1, 1048 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'remote admin connections', 0, 1049 );
/* SQL Server 2012 changes a configuration default */
IF @@VERSION LIKE '%Microsoft SQL Server 2005%'
OR @@VERSION LIKE '%Microsoft SQL Server 2008%'
BEGIN
INSERT INTO #ConfigurationDefaults
VALUES ( 'remote login timeout (s)', 20, 1069 );
END;
INSERT INTO #ConfigurationDefaults
VALUES
( 'access check cache bucket count', 0, 1001 ),
( 'access check cache quota', 0, 1002 ),
( 'Ad Hoc Distributed Queries', 0, 1003 ),
( 'affinity I/O mask', 0, 1004 ),
( 'affinity mask', 0, 1005 ),
( 'affinity64 mask', 0, 1066 ),
( 'affinity64 I/O mask', 0, 1067 ),
( 'Agent XPs', 0, 1071 ),
( 'allow updates', 0, 1007 ),
( 'awe enabled', 0, 1008 ),
( 'backup checksum default', 0, 1070 ),
( 'backup compression default', 0, 1073 ),
( 'blocked process threshold', 0, 1009 ),
( 'blocked process threshold (s)', 0, 1009 ),
( 'c2 audit mode', 0, 1010 ),
( 'clr enabled', 0, 1011 ),
( 'common criteria compliance enabled', 0, 1074 ),
( 'contained database authentication', 0, 1068 ),
( 'cost threshold for parallelism', 5, 1012 ),
( 'cross db ownership chaining', 0, 1013 ),
( 'cursor threshold', -1, 1014 ),
( 'Database Mail XPs', 0, 1072 ),
( 'default full-text language', 1033, 1016 ),
( 'default language', 0, 1017 ),
( 'default trace enabled', 1, 1018 ),
( 'disallow results from triggers', 0, 1019 ),
( 'EKM provider enabled', 0, 1075 ),
( 'filestream access level', 0, 1076 ),
( 'fill factor (%)', 0, 1020 ),
( 'ft crawl bandwidth (max)', 100, 1021 ),
( 'ft crawl bandwidth (min)', 0, 1022 ),
( 'ft notify bandwidth (max)', 100, 1023 ),
( 'ft notify bandwidth (min)', 0, 1024 ),
( 'index create memory (KB)', 0, 1025 ),
( 'in-doubt xact resolution', 0, 1026 ),
( 'lightweight pooling', 0, 1027 ),
( 'locks', 0, 1028 ),
( 'max degree of parallelism', 0, 1029 ),
( 'max full-text crawl range', 4, 1030 ),
( 'max server memory (MB)', 2147483647, 1031 ),
( 'max text repl size (B)', 65536, 1032 ),
( 'max worker threads', 0, 1033 ),
( 'media retention', 0, 1034 ),
( 'min memory per query (KB)', 1024, 1035 ),
( 'nested triggers', 1, 1037 ),
( 'network packet size (B)', 4096, 1038 ),
( 'Ole Automation Procedures', 0, 1039 ),
( 'open objects', 0, 1040 ),
( 'optimize for ad hoc workloads', 0, 1041 ),
( 'PH timeout (s)', 60, 1042 ),
( 'precompute rank', 0, 1043 ),
( 'priority boost', 0, 1044 ),
( 'query governor cost limit', 0, 1045 ),
( 'query wait (s)', -1, 1046 ),
( 'recovery interval (min)', 0, 1047 ),
( 'remote access', 1, 1048 ),
( 'remote admin connections', 0, 1049 ),
( 'remote login timeout (s)', CASE
WHEN @@VERSION LIKE '%Microsoft SQL Server 2005%'
OR @@VERSION LIKE '%Microsoft SQL Server 2008%' THEN 20
ELSE 10
END, 1069 ),
( 'remote proc trans', 0, 1050 ),
( 'remote query timeout (s)', 600, 1051 ),
( 'Replication XPs', 0, 1052 ),
( 'RPC parameter data validation', 0, 1053 ),
( 'scan for startup procs', 0, 1054 ),
( 'server trigger recursion', 1, 1055 ),
( 'set working set size', 0, 1056 ),
( 'show advanced options', 0, 1057 ),
( 'SMO and DMO XPs', 1, 1058 ),
( 'SQL Mail XPs', 0, 1059 ),
( 'transform noise words', 0, 1060 ),
( 'two digit year cutoff', 2049, 1061 ),
( 'user connections', 0, 1062 ),
( 'user options', 0, 1063 ),
( 'Web Assistant Procedures', 0, 1064 ),
( 'xp_cmdshell', 0, 1065 ),
( 'automatic soft-NUMA disabled', 0, 269),
( 'external scripts enabled', 0, 269),
( 'clr strict security', 1, 269),
( 'column encryption enclave type', 0, 269),
( 'tempdb metadata memory-optimized', 0, 269),
( 'ADR cleaner retry timeout (min)', 15, 269),
( 'ADR Preallocation Factor', 4, 269),
( 'version high part of SQL Server', 1114112, 269),
( 'version low part of SQL Server', 52428803, 269),
( 'Data processed daily limit in TB', 2147483647, 269),
( 'Data processed weekly limit in TB', 2147483647, 269),
( 'Data processed monthly limit in TB', 2147483647, 269),
( 'ADR Cleaner Thread Count', 1, 269),
( 'hardware offload enabled', 0, 269),
( 'hardware offload config', 0, 269),
( 'hardware offload mode', 0, 269),
( 'backup compression algorithm', 0, 269),
( 'ADR cleaner lock timeout (s)', 5, 269),
( 'SLOG memory quota (%)', 75, 269),
( 'max RPC request params (KB)', 0, 269),
( 'max UCS send boxcars', 256, 269),
( 'availability group commit time (ms)', 0, 269),
( 'tiered memory enabled', 0, 269),
( 'max server tiered memory (MB)', 2147483647, 269),
( 'hadoop connectivity', 0, 269),
( 'polybase network encryption', 1, 269),
( 'remote data archive', 0, 269),
( 'allow polybase export', 0, 269),
( 'allow filesystem enumeration', 1, 269),
( 'polybase enabled', 0, 269),
( 'suppress recovery model errors', 0, 269),
( 'openrowset auto_create_statistics', 1, 269),
( 'external rest endpoint enabled', 0, 269),
( 'external xtp dll gen util enabled', 0, 269),
( 'external AI runtimes enabled', 0, 269),
( 'allow server scoped db credentials', 0, 269);

/* Either 0 or 16 is fine here */
IF EXISTS (
SELECT * FROM sys.configurations
WHERE name = 'min server memory (MB)'
AND value_in_use IN (0, 16)
)
BEGIN
INSERT INTO #ConfigurationDefaults
SELECT 'min server memory (MB)', CAST(value_in_use AS BIGINT), 1036
FROM sys.configurations
WHERE name = 'min server memory (MB)';
END
ELSE
BEGIN
INSERT INTO #ConfigurationDefaults
VALUES ( 'remote login timeout (s)', 10, 1069 );
END;
INSERT INTO #ConfigurationDefaults
VALUES ( 'remote proc trans', 0, 1050 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'remote query timeout (s)', 600, 1051 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'Replication XPs', 0, 1052 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'RPC parameter data validation', 0, 1053 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'scan for startup procs', 0, 1054 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'server trigger recursion', 1, 1055 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'set working set size', 0, 1056 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'show advanced options', 0, 1057 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'SMO and DMO XPs', 1, 1058 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'SQL Mail XPs', 0, 1059 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'transform noise words', 0, 1060 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'two digit year cutoff', 2049, 1061 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'user connections', 0, 1062 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'user options', 0, 1063 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'Web Assistant Procedures', 0, 1064 );
INSERT INTO #ConfigurationDefaults
VALUES ( 'xp_cmdshell', 0, 1065 );
BEGIN
INSERT INTO #ConfigurationDefaults
VALUES ('min server memory (MB)', 0, 1036);
END;


IF NOT EXISTS ( SELECT 1
FROM #SkipChecks
Expand Down
Loading