Skip to content

Rules 15-24: Pattern precision, threshold tuning, message improvements#356

Merged
erikdarlingdata merged 1 commit into
devfrom
fix/rules-15-24-review
Feb 27, 2026
Merged

Rules 15-24: Pattern precision, threshold tuning, message improvements#356
erikdarlingdata merged 1 commit into
devfrom
fix/rules-15-24-review

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • Rule 15: Replace loose ancestor walks with exact OR expansion chain check (Nested Loops → Merge Interval → TopN Sort → [Compute Scalar] → Concatenation → [Compute Scalar] → 2+ Constant Scans)
  • Rule 16: Raise nested loops inner-side thresholds from 1K/100K to 100K/1M
  • Rule 17: In actual plans, only warn when Merge Join has ActualLogicalReads > 0 (worktable was used); include read count in message
  • Rule 22: StartsWith("@") instead of Contains; updated message about column statistics and 2019+ deferred compilation
  • Rule 24: Include columnstore scans in Top Above Scan detection (new IsScanOperator helper)

Test plan

  • dotnet build clean (0 errors) for Dashboard and Lite
  • plan-b 32/32 tests pass

🤖 Generated with Claude Code

…ments

Rule 15: Exact OR expansion chain check (Nested Loops → Merge Interval →
  TopN Sort → Concatenation → Constant Scans) replaces loose ancestor walks
Rule 16: Raise nested loops thresholds to 100K warn / 1M critical
Rule 17: In actual plans, only warn when Merge Join has logical reads
  (worktable was actually used); include read count in message
Rule 22: StartsWith("@") instead of Contains; updated message re: column
  statistics and 2019+ deferred compilation
Rule 24: Include columnstore scans in Top Above Scan detection

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit c708942 into dev Feb 27, 2026
3 checks passed
@erikdarlingdata erikdarlingdata deleted the fix/rules-15-24-review branch February 27, 2026 16:52
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