You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Documentation/sp_Blitz_Checks_by_Priority.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,8 +6,8 @@ Before adding a new check, make sure to add a Github issue for it first, and hav
6
6
7
7
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.
ANDbs.backup_finish_date>=DATEADD(DAY, -14, GETDATE()); /* In the last 2 weeks */
1283
1283
END;
1284
1284
1285
+
IFNOTEXISTS ( SELECT1
1286
+
FROM #SkipChecks
1287
+
WHERE DatabaseName ISNULLAND CheckID =236 )
1288
+
BEGIN
1289
+
1290
+
IF @Debug IN (1, 2) RAISERROR('Running CheckId [%d].', 0, 1, 236) WITHNOWAIT;
1291
+
1292
+
INSERTINTO #BlitzResults
1293
+
( CheckID ,
1294
+
Priority ,
1295
+
FindingsGroup ,
1296
+
Finding ,
1297
+
URL ,
1298
+
Details
1299
+
)
1300
+
SELECTTOP1236AS CheckID ,
1301
+
50AS Priority ,
1302
+
'Performance'AS FindingsGroup ,
1303
+
'Snapshotting Too Many Databases'AS Finding ,
1304
+
'https://BrentOzar.com/go/toomanysnaps'ASURL ,
1305
+
( CAST(SUM(1) ASVARCHAR(20)) +' databases snapshotted at once in the last two weeks, indicating that IO may be freezing up. Microsoft does not recommend VSS snaps for 35 or more databases.') AS Details
1306
+
FROMmsdb.dbo.backupset bs
1307
+
WHEREbs.type='D'
1308
+
ANDbs.backup_finish_date>=DATEADD(DAY, -14, GETDATE()) /* In the last 2 weeks */
1309
+
GROUP BYbs.backup_finish_date
1310
+
HAVINGSUM(1) >=35
1311
+
ORDER BYSUM(1) DESC;
1312
+
END;
1313
+
1285
1314
IFNOTEXISTS ( SELECT1
1286
1315
FROM #SkipChecks
1287
1316
WHERE DatabaseName ISNULLAND CheckID =4 )
@@ -6873,21 +6902,59 @@ IF @ProductVersionMajor >= 10
EXECdbo.sp_MSforeachdb'USE [?]; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; INSERT INTO #BlitzResults (CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details)
6887
6954
SELECT def1.CheckID, DB_NAME(), 210, ''Non-Default Database Scoped Config'', dsc.[name], ''https://BrentOzar.com/go/dbscope'', (''Set value: '' + COALESCE(CAST(dsc.value AS NVARCHAR(100)),''Empty'') + '' Default: '' + COALESCE(CAST(def1.default_value AS NVARCHAR(100)),''Empty'') + '' Set value for secondary: '' + COALESCE(CAST(dsc.value_for_secondary AS NVARCHAR(100)),''Empty'') + '' Default value for secondary: '' + COALESCE(CAST(def1.default_value_for_secondary AS NVARCHAR(100)),''Empty''))
6888
6955
FROM [?].sys.database_scoped_configurations dsc
6889
6956
INNER JOIN #DatabaseScopedConfigurationDefaults def1 ON dsc.configuration_id = def1.configuration_id
6890
-
LEFT OUTER JOIN #DatabaseScopedConfigurationDefaults def ON dsc.configuration_id = def.configuration_id AND (dsc.value = def.default_value OR dsc.value IS NULL) AND (dsc.value_for_secondary = def.default_value_for_secondary OR dsc.value_for_secondary IS NULL)
6957
+
LEFT OUTER JOIN #DatabaseScopedConfigurationDefaults def ON dsc.configuration_id = def.configuration_id AND (cast(dsc.value as nvarchar(100)) = cast(def.default_value as nvarchar(100)) OR dsc.value IS NULL) AND (dsc.value_for_secondary = def.default_value_for_secondary OR dsc.value_for_secondary IS NULL)
6891
6958
LEFT OUTER JOIN #SkipChecks sk ON (sk.CheckID IS NULL OR def.CheckID = sk.CheckID) AND (sk.DatabaseName IS NULL OR sk.DatabaseName = DB_NAME())
6892
6959
WHERE def.configuration_id IS NULL AND sk.CheckID IS NULL ORDER BY 1
6893
6960
OPTION (RECOMPILE);';
@@ -9022,7 +9089,11 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
9022
9089
END;
9023
9090
ELSE
9024
9091
BEGIN
9025
-
EXEC(@StringToExecute);
9092
+
IF @OutputXMLasNVARCHAR =1
9093
+
BEGIN
9094
+
SET @StringToExecute =REPLACE(@StringToExecute,'[XML]','[NVARCHAR](MAX)');
9095
+
END;
9096
+
EXEC(@StringToExecute);
9026
9097
END;
9027
9098
IF @ValidOutputServer =1
9028
9099
BEGIN
@@ -9043,6 +9114,21 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
9043
9114
END;
9044
9115
ELSE
9045
9116
BEGIN
9117
+
IF @OutputXMLasNVARCHAR =1
9118
+
BEGIN
9119
+
SET @StringToExecute =N' IF EXISTS(SELECT * FROM '
9120
+
+ @OutputDatabaseName
9121
+
+'.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = '''
WHENN'avg memory grant'THENN'AND CASE WHEN max_grant_kb = 0 THEN 0 ELSE (max_grant_kb / execution_count) END > 0'
2344
+
WHENN'avg spills'THENN'AND CASE WHEN total_spills = 0 THEN 0 ELSE (total_spills / execution_count) END > 0'
2345
+
WHENN'avg executions'THEN N'AND CASE WHEN execution_count = 0 THEN 0
2346
+
WHEN COALESCE(age_minutes, age_minutes_lifetime, 0) = 0 THEN 0
2347
+
ELSE CAST((1.00 * execution_count / COALESCE(age_minutes, age_minutes_lifetime)) AS money)
2348
+
END > 0'
2349
+
END;
2350
+
2330
2351
SET @sql +=REPLACE(@body_where, 'cached_time', 'creation_time') ;
2352
+
2353
+
SET @sql += @sort_filter + @nl;
2331
2354
2332
2355
SET @sql += @body_order + @nl + @nl + @nl;
2333
2356
@@ -2354,7 +2377,9 @@ BEGIN
2354
2377
IF @IgnoreSystemDBs =1
2355
2378
SET @sql +=N' AND COALESCE(DB_NAME(database_id), CAST(pa.value AS sysname), '''') NOT IN (''master'', ''model'', ''msdb'', ''tempdb'', ''32767'') AND COALESCE(DB_NAME(database_id), CAST(pa.value AS sysname), '''') NOT IN (SELECT name FROM sys.databases WHERE is_distributor = 1)'+ @nl ;
2356
2379
2357
-
SET @sql += @body_order + @nl + @nl + @nl ;
2380
+
SET @sql += @sort_filter + @nl;
2381
+
2382
+
SET @sql += @body_order + @nl + @nl + @nl ;
2358
2383
END;
2359
2384
2360
2385
IF (@v >=13
@@ -2384,7 +2409,9 @@ BEGIN
2384
2409
IF @IgnoreSystemDBs =1
2385
2410
SET @sql +=N' AND COALESCE(DB_NAME(database_id), CAST(pa.value AS sysname), '''') NOT IN (''master'', ''model'', ''msdb'', ''tempdb'', ''32767'') AND COALESCE(DB_NAME(database_id), CAST(pa.value AS sysname), '''') NOT IN (SELECT name FROM sys.databases WHERE is_distributor = 1)'+ @nl ;
SET @sql +=N' AND COALESCE(DB_NAME(database_id), CAST(pa.value AS sysname), '''') NOT IN (''master'', ''model'', ''msdb'', ''tempdb'', ''32767'') AND COALESCE(DB_NAME(database_id), CAST(pa.value AS sysname), '''') NOT IN (SELECT name FROM sys.databases WHERE is_distributor = 1)'+ @nl ;
0 commit comments