Merged
Conversation
- Update QueryStoreHistoryWindow constructor to accept query hash, metric tag, and time range parameters - Update QueryStoreHistoryWindow.axaml.cs LoadHistoryAsync to call new hash-based service method - Update QueryStoreHistoryWindow.axaml UI layout - Add average line to chart in UpdateChart method - Update QueryStoreGridControl ViewHistory_Click to pass queryHash, metric, and time range
Adds two centered rows of for-the-badge shields — repo stats (stars, forks, license, release, issues, last commit, CI) and social links (X/Twitter, YouTube, LinkedIn, blog). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
README: add shields.io badge flair (repo + social)
• Generate a new query to get query history data Group data by PlanHash and IntervalStart. Get inspired by the existing FetchHistoryAsync but create a new FetchAgregateHistoryAsync. Use smart agregation for other fields • sum(field) for Totals% fields and Executions • avg(field) for Avg% fields • max(last_execution) • Allow the use to select several dots in the charts using a box selector • When the user finish the selection with the box (or a single dot selection) hightligh the corresponding rows in the query history grid • Add a thin color column in the query history grid like the legend in chart • add a small light grey border for dots • the label of avg in the chart should only have "avg:<value>". Dont insert the metric inside this label. • The avg label should have a light grey transparent background and be just above the avg horizontal line • make the avg horizontal line a little more transparent • in the chart the Y-axis should always include 0 as origin • make 2 buttons "Range Period" and "Full History" and highlight the selected and current one • remove the refresh button • align the informatial text (number of interval, number of plans...| period) to the right • remove the word metric on top of the metric selector • make the X-axis label more smart : hours first (top) and the date and "agregate date". Still use an adaptative X-axis display if the interval is large
- emphasize selected dots : bigger and white border - allow the user to select multiples rows in the grid using standard CRLT+Click or SHIFT+Click for multiselection - emphasize the dots of a manually selected rows - when the user click on a planHash in the legend : highlight all dots and the line (thicker and less transparency). also - - recompute the avg in the chart using selected/highlighted dots
…at to no decimals (N0)
Feature/query history v2
Adds Windows binary signing via SignPath, gated on SIGNPATH_API_TOKEN secret — releases unsigned binaries until signing is configured. Velopack now packs from signed binaries when available. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add SignPath code signing to release workflow
…index spools
The condition checked PhysicalOp.Contains("Spool") which matched both
"Index Spool" and "Table Spool". Now checks for "Index" specifically.
Added negative test with an eager table spool plan.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…lse-positive Fix Rule 2: eager table spools no longer flagged as eager index spools
- Make the zoom on planviewer focused/centered on the mouse pointer
…te to the node. The plan become centered and focus (zoomed) on the selected node
Right-click a table, procedure, or function name in the query editor to view indexes, table definitions, or object definitions from the connected server. Uses Microsoft.SqlServer.TransactSql.ScriptDom to parse SQL and resolve the object under the cursor. - SqlObjectResolver: AST-based object resolution at cursor position - SchemaQueryService: DMV queries for indexes, columns, object definitions - CREATE TABLE output with PK constraints, identity, computed columns, partition schemes, and non-default index options - CREATE INDEX output with fill factor, compression, lock settings, partition schemes, and proper columnstore syntax - Right-click moves caret to click position for intuitive context menus - Copy/Copy All/Select All context menu on schema result tabs - 11 unit tests for SqlObjectResolver Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add contextual schema lookup from query editor
…calls SetZoomAtPoint with the mouse position. No duplicated zoom logic.
… now only need to touch AdviceWindowHelper.cs.
…cated once, used on every PointerMoved hover instead of creating a new Cursor object per frame.
…s-202604-P1 Feature/plan viewer improvments 202604 p1
Prevents schema lookup queries from blocking on busy servers. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add READ UNCOMMITTED to schema queries
Display a badge on INSERT/UPDATE/DELETE operators showing how many nonclustered indexes are maintained. The clustered index or heap is implicit; the NC count surfaces the hidden maintenance overhead. - Parse Object elements with IndexKind="NonClustered" inside Update/SimpleUpdate/CreateIndex operator elements - Show "+N NC" badge on the operator node - List index names in tooltip and properties panel - Only counts on modification operators, not read operators - 4 unit tests with INSERT, UPDATE, DELETE, and read-only plans Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Show nonclustered index count on modification operators
Right-click a statement in the plan viewer grid to open its query text in the editor. From file mode, creates a new query tab. From editor mode, loads the text into the existing editor and switches to it. Closes #165. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add 'Open in Query Editor' to plan viewer statements grid
Right-click a data access operator (scan, seek, lookup, insert, update, delete) in the plan viewer to see Show Indexes and Show Table Definition. Uses the connection from the query editor session. - Pass connection string from QuerySessionControl to PlanViewerControl - Add schema items to existing node context menu - Filter by operator type (data access only) - Exclude temp objects (#temp, @table_var, worktables) - Items disabled when no connection is available - Results shown in a popup window with SQL syntax highlighting - Copy/Copy All/Select All context menu on results Partial fix for #166 (plan viewer side). Connection toolbar for file mode plans is not yet implemented. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ma-lookup Add schema lookup to plan viewer operator right-click
Plan viewer now has Connect button + server status + database dropdown in the toolbar, enabling schema lookups on plans opened from file. Plans loaded from connected sessions inherit the connection and show the server name and database pre-populated. - Connect button shows connection dialog, populates database dropdown - Database switching updates the connection string for schema lookups - Connection services passed to PlanViewerControl from both MainWindow and QuerySessionControl - Schema lookup items disabled when no connection, enabled after connect Closes #166. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ection-toolbar Add connection toolbar to plan viewer
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bump version to 1.4.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v1.4.0
Added
+N NCbadge indicating how many nonclustered indexes are maintained, with index names in tooltip and properties (Show nonclustered index count on modification operators #167)Changed
Fixed
Full Changelog: v1.3.0...dev