@@ -233,7 +233,8 @@ CREATE TABLE ##BlitzCacheProcs (
233233 cached_execution_parameters XML ,
234234 missing_indexes XML ,
235235 SetOptions VARCHAR (MAX ),
236- Warnings VARCHAR (MAX )
236+ Warnings VARCHAR (MAX ),
237+ Pattern NVARCHAR (20 )
237238 );
238239GO
239240
@@ -1056,7 +1057,8 @@ BEGIN
10561057 cached_execution_parameters XML ,
10571058 missing_indexes XML ,
10581059 SetOptions VARCHAR (MAX ),
1059- Warnings VARCHAR (MAX )
1060+ Warnings VARCHAR (MAX ),
1061+ Pattern NVARCHAR (20 )
10601062 );
10611063END ;
10621064
@@ -1975,7 +1977,7 @@ INSERT INTO ##BlitzCacheProcs (SPID, QueryType, DatabaseName, AverageCPU, TotalC
19751977 LastReturnedRows, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills,
19761978 QueryText, QueryPlan, TotalWorkerTimeForType, TotalElapsedTimeForType, TotalReadsForType,
19771979 TotalExecutionCountForType, TotalWritesForType, SqlHandle, PlanHandle, QueryHash, QueryPlanHash,
1978- min_worker_time, max_worker_time, is_parallel, min_elapsed_time, max_elapsed_time, age_minutes, age_minutes_lifetime) ' ;
1980+ min_worker_time, max_worker_time, is_parallel, min_elapsed_time, max_elapsed_time, age_minutes, age_minutes_lifetime, Pattern ) ' ;
19791981
19801982SET @body + = N'
19811983FROM (SELECT TOP (@Top) x.*, xpa.*,
@@ -2239,7 +2241,8 @@ SELECT TOP (@Top)
22392241 qs.min_elapsed_time / 1000.0,
22402242 qs.max_elapsed_time / 1000.0,
22412243 age_minutes,
2242- age_minutes_lifetime ' ;
2244+ age_minutes_lifetime,
2245+ @SortOrder ' ;
22432246
22442247
22452248IF LEFT (@QueryFilter, 3 ) IN (' all' , ' sta' )
@@ -2387,7 +2390,8 @@ BEGIN
23872390 qs.min_elapsed_time / 1000.0,
23882391 qs.max_worker_time / 1000.0,
23892392 age_minutes,
2390- age_minutes_lifetime ' ;
2393+ age_minutes_lifetime,
2394+ @SortOrder ' ;
23912395
23922396 SET @sql + = REPLACE (REPLACE (@body, ' #view#' , ' dm_exec_query_stats' ), ' cached_time' , ' creation_time' ) ;
23932397
@@ -2622,7 +2626,7 @@ IF @Reanalyze = 0
26222626BEGIN
26232627 RAISERROR (' Collecting execution plan information.' , 0 , 1 ) WITH NOWAIT ;
26242628
2625- EXEC sp_executesql @sql, N ' @Top INT, @min_duration INT, @min_back INT' , @Top, @DurationFilter_i, @MinutesBack;
2629+ EXEC sp_executesql @sql, N ' @Top INT, @min_duration INT, @min_back INT, @SortOrder NVARCHAR(20) ' , @Top, @DurationFilter_i, @MinutesBack, @SortOrder ;
26262630END ;
26272631
26282632IF @SkipAnalysis = 1
@@ -7115,6 +7119,7 @@ ELSE
71157119 TotalSpills BIGINT,
71167120 AvgSpills MONEY,
71177121 QueryPlanCost FLOAT,
7122+ Pattern NVARCHAR(20),
71187123 JoinKey AS ServerName + Cast(CheckDate AS NVARCHAR(50)),
71197124 CONSTRAINT [PK_' + REPLACE (REPLACE (@OutputTableName,N ' [' ,N ' ' ),N ' ]' ,N ' ' ) + N ' ] PRIMARY KEY CLUSTERED(ID ASC));'
71207125 );
@@ -7216,6 +7221,22 @@ END ';
72167221 EXEC (@StringToExecute);
72177222 END ;
72187223
7224+ /* If the table doesn't have the new Pattern column, add it */
7225+ SET @ObjectFullName = @OutputDatabaseName + N ' .' + @OutputSchemaName + N ' .' + @OutputTableName;
7226+ SET @StringToExecute = N ' IF NOT EXISTS (SELECT * FROM ' + @OutputDatabaseName + N' .sys.all_columns
7227+ WHERE object_id = (OBJECT_ID('' ' + @ObjectFullName + N ' '' )) AND name = '' Pattern'' )
7228+ ALTER TABLE ' + @ObjectFullName + N ' ADD Pattern NVARCHAR(20) NULL;' ;
7229+ IF @ValidOutputServer = 1
7230+ BEGIN
7231+ SET @StringToExecute = REPLACE (@StringToExecute,' '' Pattern'' ' ,' '' '' Pattern'' '' ' );
7232+ SET @StringToExecute = REPLACE (@StringToExecute,' '' ' + @ObjectFullName + ' '' ' ,' '' '' ' + @ObjectFullName + ' '' '' ' );
7233+ EXEC (' EXEC('' '+ @StringToExecute+ ' '' ) AT ' + @OutputServerName);
7234+ END ;
7235+ ELSE
7236+ BEGIN
7237+ EXEC (@StringToExecute);
7238+ END
7239+
72197240 IF @CheckDateOverride IS NULL
72207241 BEGIN
72217242 SET @CheckDateOverride = SYSDATETIMEOFFSET ();
@@ -7235,14 +7256,14 @@ END ';
72357256 + ' (ServerName, CheckDate, Version, QueryType, DatabaseName, AverageCPU, TotalCPU, PercentCPUByType, CPUWeight, AverageDuration, TotalDuration, DurationWeight, PercentDurationByType, AverageReads, TotalReads, ReadWeight, PercentReadsByType, '
72367257 + ' AverageWrites, TotalWrites, WriteWeight, PercentWritesByType, ExecutionCount, ExecutionWeight, PercentExecutionsByType, '
72377258 + ' ExecutionsPerMinute, PlanCreationTime, LastExecutionTime, LastCompletionTime, PlanHandle, SqlHandle, QueryHash, QueryPlanHash, StatementStartOffset, StatementEndOffset, PlanGenerationNum, MinReturnedRows, MaxReturnedRows, AverageReturnedRows, TotalReturnedRows, QueryText, QueryPlan, NumberOfPlans, NumberOfDistinctPlans, Warnings, '
7238- + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost ) '
7259+ + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost, Pattern ) '
72397260 + ' SELECT TOP (@Top) '
72407261 + QUOTENAME (CAST (SERVERPROPERTY (' ServerName' ) AS NVARCHAR (128 )), ' '' ' ) + ' , @CheckDateOverride, '
72417262 + QUOTENAME (CAST (SERVERPROPERTY (' ProductVersion' ) AS NVARCHAR (128 )), ' '' ' ) + ' , '
72427263 + ' QueryType, DatabaseName, AverageCPU, TotalCPU, PercentCPUByType, PercentCPU, AverageDuration, TotalDuration, PercentDuration, PercentDurationByType, AverageReads, TotalReads, PercentReads, PercentReadsByType, '
72437264 + ' AverageWrites, TotalWrites, PercentWrites, PercentWritesByType, ExecutionCount, PercentExecutions, PercentExecutionsByType, '
72447265 + ' ExecutionsPerMinute, PlanCreationTime, LastExecutionTime, LastCompletionTime, PlanHandle, SqlHandle, QueryHash, QueryPlanHash, StatementStartOffset, StatementEndOffset, PlanGenerationNum, MinReturnedRows, MaxReturnedRows, AverageReturnedRows, TotalReturnedRows, QueryText, CAST(QueryPlan AS NVARCHAR(MAX)), NumberOfPlans, NumberOfDistinctPlans, Warnings, '
7245- + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost '
7266+ + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost, Pattern '
72467267 + ' FROM ##BlitzCacheProcs '
72477268 + ' WHERE 1=1 ' ;
72487269
@@ -7303,14 +7324,14 @@ END ';
73037324 + ' (ServerName, CheckDate, Version, QueryType, DatabaseName, AverageCPU, TotalCPU, PercentCPUByType, CPUWeight, AverageDuration, TotalDuration, DurationWeight, PercentDurationByType, AverageReads, TotalReads, ReadWeight, PercentReadsByType, '
73047325 + ' AverageWrites, TotalWrites, WriteWeight, PercentWritesByType, ExecutionCount, ExecutionWeight, PercentExecutionsByType, '
73057326 + ' ExecutionsPerMinute, PlanCreationTime, LastExecutionTime, LastCompletionTime, PlanHandle, SqlHandle, QueryHash, QueryPlanHash, StatementStartOffset, StatementEndOffset, PlanGenerationNum, MinReturnedRows, MaxReturnedRows, AverageReturnedRows, TotalReturnedRows, QueryText, QueryPlan, NumberOfPlans, NumberOfDistinctPlans, Warnings, '
7306- + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost ) '
7327+ + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost, Pattern ) '
73077328 + ' SELECT TOP (@Top) '
73087329 + QUOTENAME (CAST (SERVERPROPERTY (' ServerName' ) AS NVARCHAR (128 )), ' '' ' ) + ' , @CheckDateOverride, '
73097330 + QUOTENAME (CAST (SERVERPROPERTY (' ProductVersion' ) AS NVARCHAR (128 )), ' '' ' ) + ' , '
73107331 + ' QueryType, DatabaseName, AverageCPU, TotalCPU, PercentCPUByType, PercentCPU, AverageDuration, TotalDuration, PercentDuration, PercentDurationByType, AverageReads, TotalReads, PercentReads, PercentReadsByType, '
73117332 + ' AverageWrites, TotalWrites, PercentWrites, PercentWritesByType, ExecutionCount, PercentExecutions, PercentExecutionsByType, '
73127333 + ' ExecutionsPerMinute, PlanCreationTime, LastExecutionTime, LastCompletionTime, PlanHandle, SqlHandle, QueryHash, QueryPlanHash, StatementStartOffset, StatementEndOffset, PlanGenerationNum, MinReturnedRows, MaxReturnedRows, AverageReturnedRows, TotalReturnedRows, QueryText, QueryPlan, NumberOfPlans, NumberOfDistinctPlans, Warnings, '
7313- + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost '
7334+ + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost, Pattern '
73147335 + ' FROM ##BlitzCacheProcs '
73157336 + ' WHERE 1=1 ' ;
73167337
@@ -7452,21 +7473,22 @@ END ';
74527473 TotalSpills BIGINT,
74537474 AvgSpills MONEY,
74547475 QueryPlanCost FLOAT,
7476+ Pattern NVARCHAR(20),
74557477 JoinKey AS ServerName + Cast(CheckDate AS NVARCHAR(50)),
74567478 CONSTRAINT [PK_' + REPLACE (REPLACE (@OutputTableName,' [' ,' ' ),' ]' ,' ' ) + ' ] PRIMARY KEY CLUSTERED(ID ASC));' ;
74577479 SET @StringToExecute + = N ' INSERT '
74587480 + @OutputTableName
74597481 + ' (ServerName, CheckDate, Version, QueryType, DatabaseName, AverageCPU, TotalCPU, PercentCPUByType, CPUWeight, AverageDuration, TotalDuration, DurationWeight, PercentDurationByType, AverageReads, TotalReads, ReadWeight, PercentReadsByType, '
74607482 + ' AverageWrites, TotalWrites, WriteWeight, PercentWritesByType, ExecutionCount, ExecutionWeight, PercentExecutionsByType, '
74617483 + ' ExecutionsPerMinute, PlanCreationTime, LastExecutionTime, LastCompletionTime, PlanHandle, SqlHandle, QueryHash, QueryPlanHash, StatementStartOffset, StatementEndOffset, PlanGenerationNum, MinReturnedRows, MaxReturnedRows, AverageReturnedRows, TotalReturnedRows, QueryText, QueryPlan, NumberOfPlans, NumberOfDistinctPlans, Warnings, '
7462- + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost ) '
7484+ + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost, Pattern ) '
74637485 + ' SELECT TOP (@Top) '
74647486 + QUOTENAME (CAST (SERVERPROPERTY (' ServerName' ) AS NVARCHAR (128 )), ' '' ' ) + ' , @CheckDateOverride, '
74657487 + QUOTENAME (CAST (SERVERPROPERTY (' ProductVersion' ) AS NVARCHAR (128 )), ' '' ' ) + ' , '
74667488 + ' QueryType, DatabaseName, AverageCPU, TotalCPU, PercentCPUByType, PercentCPU, AverageDuration, TotalDuration, PercentDuration, PercentDurationByType, AverageReads, TotalReads, PercentReads, PercentReadsByType, '
74677489 + ' AverageWrites, TotalWrites, PercentWrites, PercentWritesByType, ExecutionCount, PercentExecutions, PercentExecutionsByType, '
74687490 + ' ExecutionsPerMinute, PlanCreationTime, LastExecutionTime, LastCompletionTime, PlanHandle, SqlHandle, QueryHash, QueryPlanHash, StatementStartOffset, StatementEndOffset, PlanGenerationNum, MinReturnedRows, MaxReturnedRows, AverageReturnedRows, TotalReturnedRows, QueryText, QueryPlan, NumberOfPlans, NumberOfDistinctPlans, Warnings, '
7469- + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost '
7491+ + ' SerialRequiredMemory, SerialDesiredMemory, MinGrantKB, MaxGrantKB, MinUsedGrantKB, MaxUsedGrantKB, PercentMemoryGrantUsed, AvgMaxMemoryGrant, MinSpills, MaxSpills, TotalSpills, AvgSpills, QueryPlanCost, Pattern '
74707492 + ' FROM ##BlitzCacheProcs '
74717493 + ' WHERE 1=1 ' ;
74727494
0 commit comments