Skip to content

Plan analyzer improvements#65

Merged
erikdarlingdata merged 1 commit into
devfrom
feature/analyzer-improvements
Mar 9, 2026
Merged

Plan analyzer improvements#65
erikdarlingdata merged 1 commit into
devfrom
feature/analyzer-improvements

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • Batch mode sort skew: Downgrade to Info with "by design, unless feeding a batch mode Window Aggregate" note
  • Root tooltip: Now includes statement-level PlanWarnings (e.g., Optimize For Unknown, Table Variable)
  • OPTIMIZE FOR UNKNOWN: Distinguish from OPTION(RECOMPILE) in parameter annotations (blue info vs amber)
  • Key Lookup with predicate: Upgrade from Warning to Critical
  • Table variable warnings: New statement-level warnings for missing stats + modification forces serial execution (Critical)
  • Top N Sort: Parse <TopSort> XML element, display as "Sort (Top N Sort)" matching SSMS
  • Rule 24 broadened: Any Top or Top N Sort above a scan (Critical when on NL inner side, Warning standalone)
  • IsOrExpansionChain fix: Match normalized "Top N Sort" LogicalOp

Test plan

  • 48/48 tests passing
  • Builds clean (0 errors)
  • Manual verification with example plans (batch mode sort, table variable, Top N Sort, optimize for unknown)

🤖 Generated with Claude Code

…ort, key lookup severity

- Batch mode sort skew: downgrade to Info with "by design" note (unless feeding Window Aggregate)
- Root node tooltip now includes statement-level PlanWarnings (e.g., Optimize For Unknown)
- OPTIMIZE FOR UNKNOWN: distinguish from OPTION(RECOMPILE) in parameter annotations
- Key Lookup with predicate: upgrade from Warning to Critical
- Table variable: add statement-level warnings for stats + modification serial execution (Critical)
- Top N Sort: parse <TopSort> XML element, set LogicalOp to "Top N Sort"
- Rule 24: broaden to any Top/Top N Sort above scan (Critical when on NL inner side)
- Fix IsOrExpansionChain to match normalized "Top N Sort" LogicalOp
- Update Rule 22 test for new statement-level warnings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 6ac47b7 into dev Mar 9, 2026
2 checks passed
@erikdarlingdata erikdarlingdata deleted the feature/analyzer-improvements branch March 9, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant