Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 3 months 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 (almost 9 years ago)
- Default Branch: main
- Last Pushed: 2024-05-31T17:43:54.000Z (8 months ago)
- Last Synced: 2024-11-05T07:34:33.362Z (3 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)
[![NuGet Package](https://img.shields.io/nuget/dt/LINQPadQueryPlanVisualizer.svg?label=LINQPadQueryPlanVisualizer&style=flat-square&logo=NuGet)](https://www.nuget.org/packages/LINQPadQueryPlanVisualizer/)
[![GitHub all releases](https://img.shields.io/github/downloads/Giorgi/LINQPad.QueryPlanVisualizer/total?logo=github&style=flat-square)](https://github.com/Giorgi/LINQPad.QueryPlanVisualizer/releases)
[![Apache License](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square&logo=Apache)](License.md)
[![Ko-Fi](https://img.shields.io/static/v1?style=flat-square&message=Support%20the%20Project&color=success&style=plastic&logo=ko-fi&label=$$)](https://ko-fi.com/U6U81LHU8)## Entity Framework Community Standup Live Show
[![Entity Framework Community Standup - Entity Framework Community Standup - Visualizing database query plans](https://img.youtube.com/vi/Zhy5antRDJk/0.jpg)](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:
![Sql Server query plan](screenshots/Query%20Plan.PNG "Query execution plan inside LINQPad")
Query execution plan for PostgreSQL:
![PostgreSQL query plan](screenshots/Postgres%20Query%20Plan.PNG "Query execution plan inside LINQPad")
## 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](screenshots/Missing%20Index.PNG "Missing index")
## What Others Are Saying
[![Scott Hanselman](screenshots/Scott%20Hanselman.png "Scott Hanselman")](https://twitter.com/shanselman/status/1555036430392389632)
[![Julie Lerman](screenshots/Julie%20Lerman.png "Julie Lerman")](https://twitter.com/julielerman/status/1415367790844907527)
[![Jeremy Likness](screenshots/Jeremy%20Likness.png "Jeremy Likness")](https://twitter.com/jeremylikness/status/1415368187760185346)