Skip to content

Commit 4c9cc1a

Browse files
authored
Merge pull request #1123 from BrentOzarULTD/sp_BlitzQueryStore_1122
Change parameter sniffing calculations
2 parents 781d102 + 79977e6 commit 4c9cc1a

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

sp_BlitzQueryStore.sql

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2779,55 +2779,55 @@ UPDATE b
27792779
SET b.parameter_sniffing_symptoms =
27802780
SUBSTRING(
27812781
/*Duration*/
2782-
CASE WHEN (b.min_duration * 10000) < (b.avg_duration) THEN ', Fast sometimes' ELSE '' END +
2783-
CASE WHEN (b.max_duration) > (b.avg_duration * 10000) THEN ', Slow sometimes' ELSE '' END +
2784-
CASE WHEN (b.last_duration * 10000) < (b.avg_duration) THEN ', Fast last run' ELSE '' END +
2785-
CASE WHEN (b.last_duration) > (b.avg_duration * 10000) THEN ', Slow last run' ELSE '' END +
2782+
CASE WHEN (b.min_duration * 100) < (b.avg_duration) THEN ', Fast sometimes' ELSE '' END +
2783+
CASE WHEN (b.max_duration) > (b.avg_duration * 100) THEN ', Slow sometimes' ELSE '' END +
2784+
CASE WHEN (b.last_duration * 100) < (b.avg_duration) THEN ', Fast last run' ELSE '' END +
2785+
CASE WHEN (b.last_duration) > (b.avg_duration * 100) THEN ', Slow last run' ELSE '' END +
27862786
/*CPU*/
2787-
CASE WHEN (b.min_cpu_time / b.avg_dop) * 10000 < (b.avg_cpu_time / b.avg_dop) THEN ', Low CPU sometimes' ELSE '' END +
2788-
CASE WHEN (b.max_cpu_time / b.max_dop) > (b.avg_cpu_time / b.avg_dop) * 10000 THEN ', High CPU sometimes' ELSE '' END +
2789-
CASE WHEN (b.last_cpu_time / b.last_dop) * 10000 < (b.avg_cpu_time / b.avg_dop) THEN ', Low CPU last run' ELSE '' END +
2790-
CASE WHEN (b.last_cpu_time / b.last_dop) > (b.avg_cpu_time / b.avg_dop) * 10000 THEN ', High CPU last run' ELSE '' END +
2787+
CASE WHEN (b.min_cpu_time / b.avg_dop) * 100 < (b.avg_cpu_time / b.avg_dop) THEN ', Low CPU sometimes' ELSE '' END +
2788+
CASE WHEN (b.max_cpu_time / b.max_dop) > (b.avg_cpu_time / b.avg_dop) * 100 THEN ', High CPU sometimes' ELSE '' END +
2789+
CASE WHEN (b.last_cpu_time / b.last_dop) * 100 < (b.avg_cpu_time / b.avg_dop) THEN ', Low CPU last run' ELSE '' END +
2790+
CASE WHEN (b.last_cpu_time / b.last_dop) > (b.avg_cpu_time / b.avg_dop) * 100 THEN ', High CPU last run' ELSE '' END +
27912791
/*Logical Reads*/
2792-
CASE WHEN (b.min_logical_io_reads * 10000) < (b.avg_logical_io_reads) THEN ', Low reads sometimes' ELSE '' END +
2793-
CASE WHEN (b.max_logical_io_reads) > (b.avg_logical_io_reads * 10000) THEN ', High reads sometimes' ELSE '' END +
2794-
CASE WHEN (b.last_logical_io_reads * 10000) < (b.avg_logical_io_reads) THEN ', Low reads last run' ELSE '' END +
2795-
CASE WHEN (b.last_logical_io_reads) > (b.avg_logical_io_reads * 10000) THEN ', High reads last run' ELSE '' END +
2792+
CASE WHEN (b.min_logical_io_reads * 100) < (b.avg_logical_io_reads) THEN ', Low reads sometimes' ELSE '' END +
2793+
CASE WHEN (b.max_logical_io_reads) > (b.avg_logical_io_reads * 100) THEN ', High reads sometimes' ELSE '' END +
2794+
CASE WHEN (b.last_logical_io_reads * 100) < (b.avg_logical_io_reads) THEN ', Low reads last run' ELSE '' END +
2795+
CASE WHEN (b.last_logical_io_reads) > (b.avg_logical_io_reads * 100) THEN ', High reads last run' ELSE '' END +
27962796
/*Logical Writes*/
2797-
CASE WHEN (b.min_logical_io_writes * 10000) < (b.avg_logical_io_writes) THEN ', Low writes sometimes' ELSE '' END +
2798-
CASE WHEN (b.max_logical_io_writes) > (b.avg_logical_io_writes * 10000) THEN ', High writes sometimes' ELSE '' END +
2799-
CASE WHEN (b.last_logical_io_writes * 10000) < (b.avg_logical_io_writes) THEN ', Low writes last run' ELSE '' END +
2800-
CASE WHEN (b.last_logical_io_writes) > (b.avg_logical_io_writes * 10000) THEN ', High writes last run' ELSE '' END +
2797+
CASE WHEN (b.min_logical_io_writes * 100) < (b.avg_logical_io_writes) THEN ', Low writes sometimes' ELSE '' END +
2798+
CASE WHEN (b.max_logical_io_writes) > (b.avg_logical_io_writes * 100) THEN ', High writes sometimes' ELSE '' END +
2799+
CASE WHEN (b.last_logical_io_writes * 100) < (b.avg_logical_io_writes) THEN ', Low writes last run' ELSE '' END +
2800+
CASE WHEN (b.last_logical_io_writes) > (b.avg_logical_io_writes * 100) THEN ', High writes last run' ELSE '' END +
28012801
/*Physical Reads*/
2802-
CASE WHEN (b.min_physical_io_reads * 10000) < (b.avg_physical_io_reads) THEN ', Low physical reads sometimes' ELSE '' END +
2803-
CASE WHEN (b.max_physical_io_reads) > (b.avg_physical_io_reads * 10000) THEN ', High physical reads sometimes' ELSE '' END +
2804-
CASE WHEN (b.last_physical_io_reads * 10000) < (b.avg_physical_io_reads) THEN ', Low physical reads last run' ELSE '' END +
2805-
CASE WHEN (b.last_physical_io_reads) > (b.avg_physical_io_reads * 10000) THEN ', High physical reads last run' ELSE '' END +
2802+
CASE WHEN (b.min_physical_io_reads * 100) < (b.avg_physical_io_reads) THEN ', Low physical reads sometimes' ELSE '' END +
2803+
CASE WHEN (b.max_physical_io_reads) > (b.avg_physical_io_reads * 100) THEN ', High physical reads sometimes' ELSE '' END +
2804+
CASE WHEN (b.last_physical_io_reads * 100) < (b.avg_physical_io_reads) THEN ', Low physical reads last run' ELSE '' END +
2805+
CASE WHEN (b.last_physical_io_reads) > (b.avg_physical_io_reads * 100) THEN ', High physical reads last run' ELSE '' END +
28062806
/*Memory*/
2807-
CASE WHEN (b.min_query_max_used_memory * 10000) < (b.avg_query_max_used_memory) THEN ', Low memory sometimes' ELSE '' END +
2808-
CASE WHEN (b.max_query_max_used_memory) > (b.avg_query_max_used_memory * 10000) THEN ', High memory sometimes' ELSE '' END +
2809-
CASE WHEN (b.last_query_max_used_memory * 10000) < (b.avg_query_max_used_memory) THEN ', Low memory last run' ELSE '' END +
2810-
CASE WHEN (b.last_query_max_used_memory) > (b.avg_query_max_used_memory * 10000) THEN ', High memory last run' ELSE '' END +
2807+
CASE WHEN (b.min_query_max_used_memory * 100) < (b.avg_query_max_used_memory) THEN ', Low memory sometimes' ELSE '' END +
2808+
CASE WHEN (b.max_query_max_used_memory) > (b.avg_query_max_used_memory * 100) THEN ', High memory sometimes' ELSE '' END +
2809+
CASE WHEN (b.last_query_max_used_memory * 100) < (b.avg_query_max_used_memory) THEN ', Low memory last run' ELSE '' END +
2810+
CASE WHEN (b.last_query_max_used_memory) > (b.avg_query_max_used_memory * 100) THEN ', High memory last run' ELSE '' END +
28112811
/*Duration*/
2812-
CASE WHEN b.min_rowcount * 10000 < b.avg_rowcount THEN ', Low row count sometimes' ELSE '' END +
2813-
CASE WHEN b.max_rowcount > b.avg_rowcount * 10000 THEN ', High row count sometimes' ELSE '' END +
2814-
CASE WHEN b.last_rowcount * 10000 < b.avg_rowcount THEN ', Low row count run' ELSE '' END +
2815-
CASE WHEN b.last_rowcount > b.avg_rowcount * 10000 THEN ', High row count last run' ELSE '' END +
2812+
CASE WHEN b.min_rowcount * 100 < b.avg_rowcount THEN ', Low row count sometimes' ELSE '' END +
2813+
CASE WHEN b.max_rowcount > b.avg_rowcount * 100 THEN ', High row count sometimes' ELSE '' END +
2814+
CASE WHEN b.last_rowcount * 100 < b.avg_rowcount THEN ', Low row count run' ELSE '' END +
2815+
CASE WHEN b.last_rowcount > b.avg_rowcount * 100 THEN ', High row count last run' ELSE '' END +
28162816
/*DOP*/
28172817
CASE WHEN b.min_dop = 1 THEN ', Serial sometimes' ELSE '' END +
28182818
CASE WHEN b.max_dop > 1 THEN ', Parallel sometimes' ELSE '' END +
28192819
CASE WHEN b.last_dop = 1 THEN ', Serial last run' ELSE '' END +
28202820
CASE WHEN b.last_dop > 1 THEN ', Parallel last run' ELSE '' END +
28212821
/*tempdb*/
2822-
CASE WHEN b.min_tempdb_space_used * 10000 < b.avg_tempdb_space_used THEN ', Low tempdb sometimes' ELSE '' END +
2823-
CASE WHEN b.max_tempdb_space_used > b.avg_tempdb_space_used * 10000 THEN ', High tempdb sometimes' ELSE '' END +
2824-
CASE WHEN b.last_tempdb_space_used * 10000 < b.avg_tempdb_space_used THEN ', Low tempdb run' ELSE '' END +
2825-
CASE WHEN b.last_tempdb_space_used > b.avg_tempdb_space_used * 10000 THEN ', High tempdb last run' ELSE '' END +
2822+
CASE WHEN b.min_tempdb_space_used * 100 < b.avg_tempdb_space_used THEN ', Low tempdb sometimes' ELSE '' END +
2823+
CASE WHEN b.max_tempdb_space_used > b.avg_tempdb_space_used * 100 THEN ', High tempdb sometimes' ELSE '' END +
2824+
CASE WHEN b.last_tempdb_space_used * 100 < b.avg_tempdb_space_used THEN ', Low tempdb run' ELSE '' END +
2825+
CASE WHEN b.last_tempdb_space_used > b.avg_tempdb_space_used * 100 THEN ', High tempdb last run' ELSE '' END +
28262826
/*tlog*/
2827-
CASE WHEN b.min_log_bytes_used * 10000 < b.avg_log_bytes_used THEN ', Low log use sometimes' ELSE '' END +
2828-
CASE WHEN b.max_log_bytes_used > b.avg_log_bytes_used * 10000 THEN ', High log use sometimes' ELSE '' END +
2829-
CASE WHEN b.last_log_bytes_used * 10000 < b.avg_log_bytes_used THEN ', Low log use run' ELSE '' END +
2830-
CASE WHEN b.last_log_bytes_used > b.avg_log_bytes_used * 10000 THEN ', High log use last run' ELSE '' END
2827+
CASE WHEN b.min_log_bytes_used * 100 < b.avg_log_bytes_used THEN ', Low log use sometimes' ELSE '' END +
2828+
CASE WHEN b.max_log_bytes_used > b.avg_log_bytes_used * 100 THEN ', High log use sometimes' ELSE '' END +
2829+
CASE WHEN b.last_log_bytes_used * 100 < b.avg_log_bytes_used THEN ', Low log use run' ELSE '' END +
2830+
CASE WHEN b.last_log_bytes_used > b.avg_log_bytes_used * 100 THEN ', High log use last run' ELSE '' END
28312831
, 2, 200000)
28322832
FROM #working_metrics AS b
28332833
OPTION (RECOMPILE);

0 commit comments

Comments
 (0)