Introducing LINQPad.QueryPlanVisualizer

Mar 15, 2016·
Giorgi Dalakishvili
Giorgi Dalakishvili
· 2 min read
blog Miscellaneous

If you are a heavy LINQPad user you have probably wished to be able to see query execution plan details inside LINQPad. Currently the only way to view query execution plan is to switch to SQL tab, click Analyze SQL button and open the query in SQL Server Management Studio. I got tired of clicking all these buttons and decided to write custom visualizer which solves the issue. With LINQPad.QueryPlanVisualizer you can now view query execution plan and missing indexes as well as create those missing indexes without leaving LINQPad.

LINQPad.QueryPlanVisualizer

With LINQPad.QueryPlanVisualizer you can:

  • View query execution plan
  • View missing indexes for query
  • Create missing indexes
  • Open plan in SQL Server Management Studio or other default app
  • Save plan to xml file
LINQPad showing Query Execution Plan
LINQPad showing Query Execution Plan
Missing Index
Missing Index

How it works

The visualizer executes SET STATISTICS XML ON command before executing the actual query to retrieve the actual execution plan from database. After that it converts the xml plan to html and uses html-query-plan library to display the resulting html. Missing index details (if any) are extracted from the execution plan xml too.

For more details and installation guide visit the project at https://github.com/Giorgi/LINQPad.QueryPlanVisualizer

Update: The visualizer now supports LINQPad 6, Entity Framework Core and PostgreSQL. See Updating LINQPad.QueryPlanVisualizer for LINQPad6 And Entity Framework Core and the project page.

Giorgi Dalakishvili
Authors
Backend Engineer & Software Architect · 3x Microsoft MVP · International Speaker

I’m a backend engineer and software architect with 17+ years of .NET, mostly in banking and fintech: payment and transaction processing, public APIs, and the internal platforms other teams build on. I’ve led teams and a platform unit, and I stay hands-on in the code, increasingly through AI coding agents like Claude Code and Codex.

Alongside that, I build open-source .NET libraries and developer tools with 43M+ NuGet downloads: DuckDB.NET, EntityFramework.Exceptions, EFCore.Visualizer and others. That work sits where .NET meets the database: native interop, Native AOT extensions for DuckDB and PostgreSQL, and tooling that makes query plans easier to debug. I also speak about .NET and databases at conferences like NDC, KCDC and .NET Conf.