3838 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ;
3939
4040
41- SELECT @Version = ' 8.04 ' , @VersionDate = ' 20210530 ' ;
41+ SELECT @Version = ' 8.05 ' , @VersionDate = ' 20210725 ' ;
4242 SET @OutputType = UPPER (@OutputType);
4343
4444 IF (@VersionCheckMode = 1 )
356356 SET @StringToExecute + = QUOTENAME (@SkipChecksServer) + N ' .' ;
357357 END
358358 SET @StringToExecute + = QUOTENAME (@SkipChecksDatabase) + N ' .' + QUOTENAME (@SkipChecksSchema) + N ' .' + QUOTENAME (@SkipChecksTable)
359- + N ' WHERE ServerName IS NULL OR ServerName = SERVERPROPERTY('' ServerName'' ) OPTION (RECOMPILE);' ;
359+ + N ' WHERE ServerName IS NULL OR ServerName = CAST( SERVERPROPERTY('' ServerName'' ) AS NVARCHAR(128) ) OPTION (RECOMPILE);' ;
360360 EXEC (@StringToExecute);
361361 END ;
362362
@@ -4312,10 +4312,10 @@ AS
43124312 SELECT ' containment' , 0 , 141 , 210 , ' Containment Enabled' , ' https://www.brentozar.com/go/dbdefaults' , NULL
43134313 FROM sys .all_columns
43144314 WHERE name = ' containment' AND object_id = OBJECT_ID (' sys.databases' );
4315- INSERT INTO #DatabaseDefaults
4316- SELECT ' target_recovery_time_in_seconds' , 0 , 142 , 210 , ' Target Recovery Time Changed' , ' https://www.brentozar.com/go/dbdefaults' , NULL
4317- FROM sys .all_columns
4318- WHERE name = ' target_recovery_time_in_seconds' AND object_id = OBJECT_ID (' sys.databases' );
4315+ -- INSERT INTO #DatabaseDefaults
4316+ -- SELECT 'target_recovery_time_in_seconds', 0, 142, 210, 'Target Recovery Time Changed', 'https://www.brentozar.com/go/dbdefaults', NULL
4317+ -- FROM sys.all_columns
4318+ -- WHERE name = 'target_recovery_time_in_seconds' AND object_id = OBJECT_ID('sys.databases');
43194319 INSERT INTO #DatabaseDefaults
43204320 SELECT ' delayed_durability' , 0 , 143 , 210 , ' Delayed Durability Enabled' , ' https://www.brentozar.com/go/dbdefaults' , NULL
43214321 FROM sys .all_columns
@@ -4359,6 +4359,79 @@ AS
43594359
43604360 CLOSE DatabaseDefaultsLoop;
43614361 DEALLOCATE DatabaseDefaultsLoop;
4362+
4363+ /* Check if target recovery interval <> 60 */
4364+ IF
4365+ @ProductVersionMajor >= 10
4366+ AND NOT EXISTS
4367+ (
4368+ SELECT
4369+ 1 / 0
4370+ FROM #SkipChecks AS sc
4371+ WHERE sc .DatabaseName IS NULL
4372+ AND sc .CheckID = 257
4373+ )
4374+ BEGIN
4375+ IF EXISTS
4376+ (
4377+ SELECT
4378+ 1 / 0
4379+ FROM sys .all_columns AS ac
4380+ WHERE ac .name = ' target_recovery_time_in_seconds'
4381+ AND ac .object_id = OBJECT_ID (' sys.databases' )
4382+ )
4383+ BEGIN
4384+ IF @Debug IN (1 , 2 ) RAISERROR (' Running CheckId [%d].' , 0 , 1 , 257 ) WITH NOWAIT ;
4385+
4386+ DECLARE
4387+ @tri nvarchar (max ) = N'
4388+ SELECT
4389+ DatabaseName =
4390+ d.name,
4391+ CheckId =
4392+ 257,
4393+ Priority =
4394+ 50,
4395+ FindingsGroup =
4396+ N'' Performance'' ,
4397+ Finding =
4398+ N'' Recovery Interval Not Optimal'' ,
4399+ URL =
4400+ N'' https://sqlperformance.com/2020/05/system-configuration/0-to-60-switching-to-indirect-checkpoints'' ,
4401+ Details =
4402+ N'' The database '' +
4403+ QUOTENAME(d.name) +
4404+ N'' has a target recovery interval of '' +
4405+ RTRIM(d.target_recovery_time_in_seconds) +
4406+ CASE
4407+ WHEN d.target_recovery_time_in_seconds = 0
4408+ THEN N'' , which is a legacy default, and should be changed to 60.''
4409+ WHEN d.target_recovery_time_in_seconds <> 0
4410+ THEN N'' , which is probably a mistake, and should be changed to 60.''
4411+ END
4412+ FROM sys.databases AS d
4413+ WHERE d.database_id > 4
4414+ AND d.is_read_only = 0
4415+ AND d.is_in_standby = 0
4416+ AND d.target_recovery_time_in_seconds <> 60;
4417+ ' ;
4418+
4419+ INSERT INTO
4420+ #BlitzResults
4421+ (
4422+ DatabaseName,
4423+ CheckID,
4424+ Priority,
4425+ FindingsGroup,
4426+ Finding,
4427+ URL ,
4428+ Details
4429+ )
4430+ EXEC sys .sp_executesql
4431+ @tri;
4432+
4433+ END ;
4434+ END ;
43624435
43634436
43644437/* This checks to see if Agent is Offline*/
@@ -6085,7 +6158,7 @@ IF @ProductVersionMajor >= 10
60856158 END ;
60866159
60876160
6088- IF @ProductVersionMajor > = 13 AND @ProductVersionMinor < 2149 -- CU1 has the fix in it
6161+ IF @ProductVersionMajor = 13 AND @ProductVersionMinor < 2149 -- 2016 CU1 has the fix in it
60896162 AND NOT EXISTS ( SELECT 1
60906163 FROM #SkipChecks
60916164 WHERE DatabaseName IS NULL AND CheckID = 182 )
@@ -8180,6 +8253,7 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
81808253 WHERE o .name = ' dm_server_services'
81818254 AND c .name = ' instant_file_initialization_enabled' )
81828255 begin
8256+ SET @StringToExecute = N'
81838257 INSERT INTO #BlitzResults
81848258 ( CheckID ,
81858259 [Priority] ,
@@ -8191,14 +8265,15 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
81918265 SELECT
81928266 193 AS [CheckID] ,
81938267 250 AS [Priority] ,
8194- ' Server Info' AS [FindingsGroup] ,
8195- ' Instant File Initialization Enabled' AS [Finding] ,
8196- ' https://www.brentozar.com/go/instant' AS [URL] ,
8197- ' The service account has the Perform Volume Maintenance Tasks permission.'
8268+ '' Server Info' ' AS [FindingsGroup] ,
8269+ '' Instant File Initialization Enabled' ' AS [Finding] ,
8270+ '' https://www.brentozar.com/go/instant' ' AS [URL] ,
8271+ '' The service account has the Perform Volume Maintenance Tasks permission.' '
81988272 where exists (select 1 FROM sys.dm_server_services
8199- WHERE instant_file_initialization_enabled = ' Y'
8200- AND filename LIKE ' %sqlservr.exe%' )
8201- OPTION (RECOMPILE );
8273+ WHERE instant_file_initialization_enabled = '' Y''
8274+ AND filename LIKE '' %sqlservr.exe%'' )
8275+ OPTION (RECOMPILE);' ;
8276+ EXEC (@StringToExecute);
82028277 end ;
82038278 end ;
82048279 END ;
@@ -9027,7 +9102,7 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
90279102 IF (OBJECT_ID (' tempdb..##BlitzResults' , ' U' ) IS NOT NULL ) DROP TABLE ##BlitzResults;
90289103 SELECT * INTO ##BlitzResults FROM #BlitzResults;
90299104 SET @query_result_separator = char (9 );
9030- SET @StringToExecute = ' SET NOCOUNT ON;SELECT [Priority] , [FindingsGroup] , [Finding] , [DatabaseName] , [URL] , [Details] , CheckID FROM ##BlitzResults ORDER BY Priority , FindingsGroup, Finding, Details; SET NOCOUNT OFF;' ;
9105+ SET @StringToExecute = ' SET NOCOUNT ON;SELECT [Priority] , [FindingsGroup] , [Finding] , [DatabaseName] , [URL] , [Details] , CheckID FROM ##BlitzResults ORDER BY Priority , FindingsGroup , Finding , DatabaseName , Details; SET NOCOUNT OFF;' ;
90319106 SET @EmailSubject = ' sp_Blitz Results for ' + @@SERVERNAME ;
90329107 SET @EmailBody = ' sp_Blitz ' + CAST (CONVERT (DATETIME , @VersionDate, 102 ) AS VARCHAR (100 )) + ' . http://FirstResponderKit.org' ;
90339108 IF @EmailProfile IS NULL
@@ -9172,7 +9247,7 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
91729247 + @OutputTableName
91739248 + ' (ServerName, CheckDate, CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, QueryPlan, QueryPlanFiltered) SELECT '' '
91749249 + CAST (SERVERPROPERTY (' ServerName' ) AS NVARCHAR (128 ))
9175- + ' '' , SYSDATETIMEOFFSET(), CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, CAST(QueryPlan AS NVARCHAR(MAX)), QueryPlanFiltered FROM #BlitzResults ORDER BY Priority , FindingsGroup , Finding , Details' ;
9250+ + ' '' , SYSDATETIMEOFFSET(), CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, CAST(QueryPlan AS NVARCHAR(MAX)), QueryPlanFiltered FROM #BlitzResults ORDER BY Priority , FindingsGroup , Finding , DatabaseName , Details' ;
91769251
91779252 EXEC (@StringToExecute);
91789253 END ;
@@ -9189,7 +9264,7 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
91899264 + @OutputTableName
91909265 + ' (ServerName, CheckDate, CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, QueryPlan, QueryPlanFiltered) SELECT '' '
91919266 + CAST (SERVERPROPERTY (' ServerName' ) AS NVARCHAR (128 ))
9192- + ' '' , SYSDATETIMEOFFSET(), CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, CAST(QueryPlan AS NVARCHAR(MAX)), QueryPlanFiltered FROM #BlitzResults ORDER BY Priority , FindingsGroup , Finding , Details' ;
9267+ + ' '' , SYSDATETIMEOFFSET(), CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, CAST(QueryPlan AS NVARCHAR(MAX)), QueryPlanFiltered FROM #BlitzResults ORDER BY Priority , FindingsGroup , Finding , DatabaseName , Details' ;
91939268 END ;
91949269 ELSE
91959270 begin
@@ -9202,7 +9277,7 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
92029277 + @OutputTableName
92039278 + ' (ServerName, CheckDate, CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, QueryPlan, QueryPlanFiltered) SELECT '' '
92049279 + CAST (SERVERPROPERTY (' ServerName' ) AS NVARCHAR (128 ))
9205- + ' '' , SYSDATETIMEOFFSET(), CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, QueryPlan, QueryPlanFiltered FROM #BlitzResults ORDER BY Priority , FindingsGroup , Finding , Details' ;
9280+ + ' '' , SYSDATETIMEOFFSET(), CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, QueryPlan, QueryPlanFiltered FROM #BlitzResults ORDER BY Priority , FindingsGroup , Finding , DatabaseName , Details' ;
92069281 END ;
92079282 EXEC (@StringToExecute);
92089283
@@ -9238,7 +9313,7 @@ IF @ProductVersionMajor >= 10 AND NOT EXISTS ( SELECT 1
92389313 + @OutputTableName
92399314 + ' (ServerName, CheckDate, CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, QueryPlan, QueryPlanFiltered) SELECT '' '
92409315 + CAST (SERVERPROPERTY (' ServerName' ) AS NVARCHAR (128 ))
9241- + ' '' , SYSDATETIMEOFFSET(), CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, QueryPlan, QueryPlanFiltered FROM #BlitzResults ORDER BY Priority , FindingsGroup , Finding , Details' ;
9316+ + ' '' , SYSDATETIMEOFFSET(), CheckID, DatabaseName, Priority, FindingsGroup, Finding, URL, Details, QueryPlan, QueryPlanFiltered FROM #BlitzResults ORDER BY Priority , FindingsGroup , Finding , DatabaseName , Details' ;
92429317
92439318 EXEC (@StringToExecute);
92449319 END ;
0 commit comments