Skip to content

Commit 71bac1a

Browse files
sp_PerfCheck rework + README accuracy fixes across all procedures
sp_PerfCheck v2.3: - New 5-tier priority system (Critical/High/Medium/Low/Informational) - Remove duplicative check 6201 (DB I/O stalls) - Raise read/write latency defaults from 100ms to 500ms - Raise security token cache threshold to 1GB - Add priority_label column to output - Add log file size to check 7102 - Standardize all web links README fixes found by code review: - sp_HealthParser: Add @skip_waits, @use_ring_buffer; fix @wait_duration_ms default (0->500) - sp_HumanEvents: Add @target_output; fix @gimme_danger desc; fix @max_blocking_events type - sp_IndexCleanup: Fix copyright year 2024->2026 - sp_LogHunter: Fix typo "substitions" -> "substitutions" - sp_PressureDetector: Add missing @troubleshoot_blocking parameter - sp_QuickieStore: Fix @include/@exclude_databases type (4000->MAX); add total sort options - Main README: Mirror all individual fixes, add missing params for QueryReproBuilder/BlockViewer Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 39068c2 commit 71bac1a

9 files changed

Lines changed: 319 additions & 421 deletions

File tree

README.md

Lines changed: 27 additions & 15 deletions
Large diffs are not rendered by default.

sp_HealthParser/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,12 @@ Typical result set will show you:
3333
| @end_date | datetimeoffset | latest date to show data for, will be internally converted to UTC | a reasonable date | current date |
3434
| @warnings_only | bit | only show rows where a warning was reported | NULL, 0, 1 | 0 |
3535
| @database_name | sysname | database name to show blocking events for | the name of a database | NULL |
36-
| @wait_duration_ms | bigint | minimum wait duration | the minimum duration of a wait for queries with interesting waits | 0 |
36+
| @wait_duration_ms | bigint | minimum wait duration | the minimum duration of a wait for queries with interesting waits | 500 |
3737
| @wait_round_interval_minutes | bigint | interval to round minutes to for wait stats | interval to round minutes to for top wait stats by count and duration | 60 |
3838
| @skip_locks | bit | skip the blocking and deadlocking section | 0 or 1 | 0 |
39+
| @skip_waits | bit | skip the wait stats section | 0 or 1 | 0 |
3940
| @pending_task_threshold | integer | minimum number of pending tasks to display | a valid integer | 10 |
41+
| @use_ring_buffer | bit | use ring_buffer target instead of file target for faster collection | 0 or 1 | 0 |
4042
| @log_to_table | bit | enable logging to permanent tables | 0 or 1 | 0 |
4143
| @log_database_name | sysname | database to store logging tables | valid database name | NULL |
4244
| @log_schema_name | sysname | schema to store logging tables | valid schema name | NULL |

sp_HumanEvents/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ Misuse of this procedure can harm performance. Be very careful about introducing
6363
| @object_schema | sysname | (inclusive) the schema of the object you want to filter to; only needed with blocking events | a stringy thing | dbo |
6464
| @requested_memory_mb | integer | (>=) the memory grant a query must ask for to have data collected | an integer | 0 |
6565
| @seconds_sample | tinyint | the duration in seconds to run the event session for | an integer | 10 |
66-
| @gimme_danger | bit | used to override default minimums for query, wait, and blocking durations. | 1 or 0 | 0 |
66+
| @gimme_danger | bit | used to override default duration minimums for wait events, including zero-duration waits | 1 or 0 | 0 |
67+
| @target_output | sysname | output target for extended events | "ring_buffer" or "event_file" (event_file not available for Azure SQL DB or Managed Instance) | "ring_buffer" |
6768
| @keep_alive | bit | creates a permanent session, either to watch live or log to a table from | 1 or 0 | 0 |
6869
| @custom_name | sysname | if you want to custom name a permanent session | a stringy thing | intentionally left blank |
6970
| @output_database_name | sysname | the database you want to log data to | a valid database name | intentionally left blank |
@@ -192,7 +193,7 @@ ON SERVER
192193
| @log_schema_name | sysname | schema to store logging tables | a valid schema name | NULL |
193194
| @log_table_name_prefix| sysname | prefix for all logging tables | a valid table name prefix | 'HumanEventsBlockViewer' |
194195
| @log_retention_days | integer | Number of days to keep logs, 0 = keep indefinitely | a valid integer | 30 |
195-
| @max_blocking_events | bigint | maximum blocking events to analyze, 0 = unlimited | 0 to 9223372036854775807 | 5000 |
196+
| @max_blocking_events | integer | maximum blocking events to analyze, 0 = unlimited | 0 to 2147483647 | 5000 |
196197
| @help | bit | how you got here | 0 or 1 | 0 |
197198
| @debug | bit | dumps raw temp table contents | 0 or 1 | 0 |
198199
| @version | varchar | OUTPUT; for support | none; OUTPUT | none; OUTPUT |

sp_IndexCleanup/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,5 @@ EXECUTE dbo.sp_IndexCleanup
9898
- When using @get_all_databases, results for all databases are combined in a single result set
9999
- The index_count column for the SUMMARY row in the output table will likely indicate a lower number than is shown at the DATABASE level. The SUMMARY level only includes indexes that have been analyzed; excluding things like clustered indexes, heaps, xml indexes, etc. The DATABASE level index_count value is the total number of indexes in the database.
100100

101-
Copyright 2024 Darling Data, LLC
101+
Copyright 2026 Darling Data, LLC
102102
Released under MIT license

sp_LogHunter/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ It helps you give you a fuller, better picture of any bad stuff happening.
1919
| @days_back | integer | how many days back you want to search the logs | an integer; will be converted to a negative number automatically | -7 |
2020
| @start_date | datetime | if you want to search a specific time frame | a datetime value | NULL |
2121
| @end_date | datetime | if you want to search a specific time frame | a datetime value | NULL |
22-
| @custom_message | nvarchar | if you want to search for a custom string | something specific you want to search for. no wildcards or substitions. | NULL |
22+
| @custom_message | nvarchar | if you want to search for a custom string | something specific you want to search for. no wildcards or substitutions. | NULL |
2323
| @custom_message_only | bit | only search for the custom string | NULL, 0, 1 | 0 |
2424
| @first_log_only | bit | only search through the first error log | NULL, 0, 1 | 0 |
2525
| @language_id | integer | to use something other than English | SELECT DISTINCT m.language_id FROM sys.messages AS m ORDER BY m.language_id; | 1033 |

0 commit comments

Comments
 (0)