https://github.com/Giorgi/LINQPad.QueryPlanVisualizer
SQL Server and PostgreSQL query execution plan visualizer for LINQPad
https://github.com/Giorgi/LINQPad.QueryPlanVisualizer
efcore linqpad linqpad-plugin npgsql nuget postgresql sql-server
Last synced: 20 days ago
JSON representation
SQL Server and PostgreSQL query execution plan visualizer for LINQPad
- Host: GitHub
- URL: https://github.com/Giorgi/LINQPad.QueryPlanVisualizer
- Owner: Giorgi
- License: other
- Created: 2016-03-07T13:13:21.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-05-31T17:43:54.000Z (11 months ago)
- Last Synced: 2024-11-05T07:34:33.362Z (6 months ago)
- Topics: efcore, linqpad, linqpad-plugin, npgsql, nuget, postgresql, sql-server
- Language: C#
- Homepage: https://www.giorgi.dev/miscellaneous/introducing-linqpad-queryplanvisualizer/
- Size: 1.2 MB
- Stars: 401
- Watchers: 22
- Forks: 30
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: License.md
Awesome Lists containing this project
README
# LINQPad.QueryPlanVisualizer
Visualize Entity Framework and Linq to SQL queries in LINQPad. For Visual Studio extension see [EFCore.Visualizer](https://github.com/Giorgi/EFCore.Visualizer)
[](https://www.nuget.org/packages/LINQPadQueryPlanVisualizer/)
[](https://github.com/Giorgi/LINQPad.QueryPlanVisualizer/releases)
[](License.md)
[](https://ko-fi.com/U6U81LHU8)## Entity Framework Community Standup Live Show
[](https://www.youtube.com/watch?v=Zhy5antRDJk)
## SQL Server and PostgreSQL query execution plan visualizer for LINQPad
## Features
* View query execution plan inside LINQPad
* View missing indexes for query
* Share plan to [https://www.brentozar.com/pastetheplan/](https://www.brentozar.com/pastetheplan/) or [https://explain.dalibo.com/](https://explain.dalibo.com/)
* Create missing indexes directly from LINQPad
* Open plan in SQL Server Management Studio or another default app
* Save plan to diskSupported 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](https://developer.microsoft.com/en-us/microsoft-edge/webview2/).
### 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](https://github.com/Giorgi/QueryPlanVisualizer/releases/latest) 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:

Query execution plan for PostgreSQL:

## 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:

## What Others Are Saying
[](https://twitter.com/shanselman/status/1555036430392389632)
[](https://twitter.com/julielerman/status/1415367790844907527)
[](https://twitter.com/jeremylikness/status/1415368187760185346)