Giorgi / LINQPad.QueryPlanVisualizer

SQL Server and PostgreSQL query execution plan visualizer for LINQPad
https://www.giorgi.dev/miscellaneous/introducing-linqpad-queryplanvisualizer/
Other
401 stars 30 forks source link
efcore linqpad linqpad-plugin npgsql nuget postgresql sql-server

LINQPad.QueryPlanVisualizer

Visualize Entity Framework and Linq to SQL queries in LINQPad. For Visual Studio extension see EFCore.Visualizer

NuGet Package GitHub all releases Apache License Ko-Fi

Entity Framework Community Standup Live Show

Entity Framework Community Standup - Entity Framework Community Standup - Visualizing database query plans

SQL Server and PostgreSQL query execution plan visualizer for LINQPad

Features

Supported databases: Sql Server and PostgreSQL.

Supported ORMs: Entity Framework Core 5 and LINQ to SQL

Getting Started

If you use LINQPad 6 or newer, you must use version 2.X of this library. For LINQPad 5, you must use version 1.X

Version 2.1 and newer uses Microsoft Edge WebView2 to display the query plan. This requires either WebView2 Runtime to be installed or a recent version of Edge Canary. To download WebView2 Runtime visit Microsoft Edge WebView2 Download Page.

Install from NuGet

If you have a Developer or higher edition of LINQPad, you can use the LINQPadQueryPlanVisualizer package from NuGet to add the visualizer to your queries.

Install as plugin

To install the visualizer as a LINQPad plugin, download the latest release and drop the visualizer dll directly inside LINQPad's plugins folder (by default found at My Documents\LINQPad Plugins\NetCore3 for LINQPad 6 and My Documents\LINQPad Plugins\Framework 4.6 for LINQPad 5). The plugin will be automatically available in all your queries.

Viewing query plan

To view query plan or missing indexes, call static QueryPlanVisualizer.DumpPlan(query) method or call DumpPlan extension method on an IQueryable instance. You will also need to add ExecutionPlanVisualizer to the namespaces list (click F4 to open the dialog). If you want to dump query result as well, pass true as a second parameter.

Query execution plan for Sql Server:

Sql Server query plan

Query execution plan for PostgreSQL:

PostgreSQL query plan

Viewing missing indexes

For SQL Server, the query plan can also return information about missing indexes in QueryPlan/MissingIndexes/MissingIndexGroup element. If missing indexes are present in the plan the visualizer will show a second tab with the missing index details and a button to create the index.

Missing index:

missing indexes

What Others Are Saying

Scott Hanselman

Julie Lerman

Jeremy Likness