Skip to content

Updates_20260701 - Declaration of Index-pendence

Latest

Choose a tag to compare

@erikdarlingdata erikdarlingdata released this 04 Jul 17:51

What's new

sp_HumanEventsBlockViewer (5.7)

The blocking rollup got a lot smarter this month.

  • Contended object resolution (#812): the rollup decodes wait_resource and tells you which object sessions are fighting over, instead of leaving you to translate page/key IDs by hand.
  • Non-lock and self-blocking netted out (#806): lock-count findings 1 and 2 no longer fold non-lock waits and self-blocking into the totals, so the numbers reflect actual lock contention.
  • Procedure names in the Top Lead Blocker rollup: a lead blocker running inside a procedure now resolves to the procedure name.
  • @skip_execution_plans: skip plan collection when you only care about the blocking chain.

sp_IndexCleanup (2.7)

  • Filtered-index fix scripts: emits corrected definitions for filtered indexes instead of skipping them.
  • Compression candidates: counts clustered compression candidates and orders the compression output by size.
  • Filegroup / partition-scheme aware: original_index_definition carries the correct ON [filegroup|partition_scheme] clause and OPTIMIZE_FOR_SEQUENTIAL_KEY.
  • No more silent early exit (#801): when index usage stats are empty it says so, instead of quietly returning nothing.
  • Accurate UDF detection: replaced the LIKE heuristic (which misfired on computed columns, check constraints, and schema-qualified system functions) with sys.sql_expression_dependencies.

sp_QueryReproBuilder (1.7)

  • Include filters now intersect (seed then narrow) instead of union.
  • New hash and handle filters (#810) to target a specific query or plan.

sp_QuickieCache (1.7)

  • Clickable query text XML in the results.
  • Reconciled plan-cache health counts (@total_cached_plans vs @total_plans).

sp_PressureDetector (6.7)

  • Surfaces version store cleanup blockers in the tempdb output, so a stuck long-running transaction pinning version store space is visible.

sp_HumanEvents (7.7)

  • Executions fix (#802, #803): the HumanEvents_Queries view no longer reports executions as always 1, and no longer double-counts them.
  • CATCH hardening (#807): cleanup in the CATCH block no longer masks the original pre-creation error.
  • Sort by event_time (#795): query results can be ordered by when they happened.

Behind the scenes

  • Restored SET ANSI_NULLS ON and SET ANSI_PADDING ON to the sp_IndexCleanup, sp_PerfCheck, and sp_QuickieCache headers so every procedure shares the same session settings. No behavior change.
  • Standard version bumps across the rest of the suite: sp_HealthParser 3.7, sp_LogHunter 3.7, sp_PerfCheck 2.7, sp_QuickieStore 6.7.

Install / upgrade

Every procedure is a single self-contained .sql file with no helper objects and no dependencies. Pull the latest file and run it in SSMS, or grab the bundled Install-All/DarlingData.sql.

Thanks

To everyone who filed issues, tested fixes, and pushed back when something did not work this month.