Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 17545ba

Browse files
BrentOzarULTD#1232 sp_BlitzFirst add @OutputTableRetentionDays parameter
Defaults to 7 days. Closes BrentOzarULTD#1232.
1 parent 5986d74 commit 17545ba

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed

‎sp_BlitzFirst.sql‎

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ ALTER PROCEDURE [dbo].[sp_BlitzFirst]
1818
@OutputTableNamePerfmonStats NVARCHAR(256) = NULL ,
1919
@OutputTableNameWaitStats NVARCHAR(256) = NULL ,
2020
@OutputTableNameBlitzCache NVARCHAR(256) = NULL ,
21+
@OutputTableRetentionDays TINYINT = 7 ,
2122
@OutputXMLasNVARCHAR TINYINT = 0 ,
2223
@FilterPlansByDatabase VARCHAR(MAX) = NULL ,
2324
@CheckProcedureCache TINYINT = 0 ,
@@ -2502,7 +2503,23 @@ BEGIN
25022503
@CheckDateOverride = @StartSampleTime,
25032504
@MinutesBack = @BlitzCacheMinutesBack,
25042505
@Debug = @Debug;
2506+
2507+
/* Delete history older than @OutputTableRetentionDays */
2508+
SET @StringToExecute = N' IF EXISTS(SELECT * FROM '
2509+
+ @OutputDatabaseName
2510+
+ '.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = '''
2511+
+ @OutputSchemaName + ''') DELETE '
2512+
+ @OutputDatabaseName + '.'
2513+
+ @OutputSchemaName + '.'
2514+
+ @OutputTableNameBlitzCache
2515+
+ ' WHERE ServerName = '''
2516+
+ CAST(SERVERPROPERTY('ServerName') AS NVARCHAR(128))
2517+
+ ''' AND CheckDate < ''' + CAST(CAST( (DATEADD(DAY, -1 * @OutputTableRetentionDays, GETDATE() ) ) AS DATE) AS NVARCHAR(20)) + ''';';
2518+
EXEC(@StringToExecute);
2519+
2520+
25052521
END
2522+
25062523
ELSE /* No sp_BlitzCache found, or it's outdated */
25072524
BEGIN
25082525
INSERT INTO #BlitzFirstResults
@@ -2583,6 +2600,21 @@ BEGIN
25832600
+ CAST(SERVERPROPERTY('ServerName') AS NVARCHAR(128))
25842601
+ ''', ''' + (CONVERT(NVARCHAR(100), @StartSampleTime, 121)) + ''', CheckID, Priority, FindingsGroup, Finding, URL, Details, HowToStopIt, QueryPlan, QueryText, StartTime, LoginName, NTUserName, OriginalLoginName, ProgramName, HostName, DatabaseID, DatabaseName, OpenTransactionCount, DetailsInt FROM #BlitzFirstResults ORDER BY Priority , FindingsGroup , Finding , Details';
25852602
EXEC(@StringToExecute);
2603+
2604+
/* Delete history older than @OutputTableRetentionDays */
2605+
SET @StringToExecute = N' IF EXISTS(SELECT * FROM '
2606+
+ @OutputDatabaseName
2607+
+ '.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = '''
2608+
+ @OutputSchemaName + ''') DELETE '
2609+
+ @OutputDatabaseName + '.'
2610+
+ @OutputSchemaName + '.'
2611+
+ @OutputTableName
2612+
+ ' WHERE ServerName = '''
2613+
+ CAST(SERVERPROPERTY('ServerName') AS NVARCHAR(128))
2614+
+ ''' AND CheckDate < ''' + CAST(CAST( (DATEADD(DAY, -1 * @OutputTableRetentionDays, GETDATE() ) ) AS DATE) AS NVARCHAR(20)) + ''';';
2615+
EXEC(@StringToExecute);
2616+
2617+
25862618
END
25872619
ELSE IF (SUBSTRING(@OutputTableName, 2, 2) = '##')
25882620
BEGIN
@@ -2707,6 +2739,20 @@ BEGIN
27072739
+ ''', ''' + CONVERT(NVARCHAR(100), @StartSampleTime, 121) + ''', '
27082740
+ 'DatabaseID, FileID, DatabaseName, FileLogicalName, TypeDesc, SizeOnDiskMB, io_stall_read_ms, num_of_reads, bytes_read, io_stall_write_ms, num_of_writes, bytes_written, PhysicalName FROM #FileStats WHERE Pass = 2';
27092741
EXEC(@StringToExecute);
2742+
2743+
/* Delete history older than @OutputTableRetentionDays */
2744+
SET @StringToExecute = N' IF EXISTS(SELECT * FROM '
2745+
+ @OutputDatabaseName
2746+
+ '.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = '''
2747+
+ @OutputSchemaName + ''') DELETE '
2748+
+ @OutputDatabaseName + '.'
2749+
+ @OutputSchemaName + '.'
2750+
+ @OutputTableNameFileStats
2751+
+ ' WHERE ServerName = '''
2752+
+ CAST(SERVERPROPERTY('ServerName') AS NVARCHAR(128))
2753+
+ ''' AND CheckDate < ''' + CAST(CAST( (DATEADD(DAY, -1 * @OutputTableRetentionDays, GETDATE() ) ) AS DATE) AS NVARCHAR(20)) + ''';';
2754+
EXEC(@StringToExecute);
2755+
27102756
END
27112757
ELSE IF (SUBSTRING(@OutputTableNameFileStats, 2, 2) = '##')
27122758
BEGIN
@@ -2817,6 +2863,21 @@ BEGIN
28172863
+ 'object_name, counter_name, instance_name, cntr_value, cntr_type, value_delta, value_per_second FROM #PerfmonStats WHERE Pass = 2';
28182864
EXEC(@StringToExecute);
28192865

2866+
/* Delete history older than @OutputTableRetentionDays */
2867+
SET @StringToExecute = N' IF EXISTS(SELECT * FROM '
2868+
+ @OutputDatabaseName
2869+
+ '.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = '''
2870+
+ @OutputSchemaName + ''') DELETE '
2871+
+ @OutputDatabaseName + '.'
2872+
+ @OutputSchemaName + '.'
2873+
+ @OutputTableNamePerfmonStats
2874+
+ ' WHERE ServerName = '''
2875+
+ CAST(SERVERPROPERTY('ServerName') AS NVARCHAR(128))
2876+
+ ''' AND CheckDate < ''' + CAST(CAST( (DATEADD(DAY, -1 * @OutputTableRetentionDays, GETDATE() ) ) AS DATE) AS NVARCHAR(20)) + ''';';
2877+
EXEC(@StringToExecute);
2878+
2879+
2880+
28202881
END
28212882
ELSE IF (SUBSTRING(@OutputTableNamePerfmonStats, 2, 2) = '##')
28222883
BEGIN
@@ -2948,6 +3009,20 @@ BEGIN
29483009
+ ''', ''' + CONVERT(NVARCHAR(100), @StartSampleTime, 121) + ''', '
29493010
+ 'wait_type, wait_time_ms, signal_wait_time_ms, waiting_tasks_count FROM #WaitStats WHERE Pass = 2 AND wait_time_ms > 0 AND waiting_tasks_count > 0';
29503011
EXEC(@StringToExecute);
3012+
3013+
/* Delete history older than @OutputTableRetentionDays */
3014+
SET @StringToExecute = N' IF EXISTS(SELECT * FROM '
3015+
+ @OutputDatabaseName
3016+
+ '.INFORMATION_SCHEMA.SCHEMATA WHERE QUOTENAME(SCHEMA_NAME) = '''
3017+
+ @OutputSchemaName + ''') DELETE '
3018+
+ @OutputDatabaseName + '.'
3019+
+ @OutputSchemaName + '.'
3020+
+ @OutputTableNameWaitStats
3021+
+ ' WHERE ServerName = '''
3022+
+ CAST(SERVERPROPERTY('ServerName') AS NVARCHAR(128))
3023+
+ ''' AND CheckDate < ''' + CAST(CAST( (DATEADD(DAY, -1 * @OutputTableRetentionDays, GETDATE() ) ) AS DATE) AS NVARCHAR(20)) + ''';';
3024+
EXEC(@StringToExecute);
3025+
29513026
END
29523027
ELSE IF (SUBSTRING(@OutputTableNameWaitStats, 2, 2) = '##')
29533028
BEGIN

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /