SentryOne Team Blog (

Features and Fixes in SentryOne Plan Explorer 19.0.2

While most of the recent buzz here has been around our new SQL Sentry Essentials SKU, there are some important updates for SentryOne Plan Explorer, too (change list here):

#41701 – Implement new operator icons in plan diagrams

For a long time, we had similar plan diagram icons to SSMS, and had already started an "icon refresh" project long before Microsoft decided to simplify their own icons. Their documentation still shows the old versions, but Hugo Kornelis has you covered. They went a totally different direction inside the Explain functionality in Azure Data Studio, and we like our new implementation a little better.

In Plan Explorer, we wanted to mute some of the brighter colors present in the icons, to help highlight things like warnings and costs, and to keep the blue from taking over. We also softened some edges, raised the threshold for color ranges, and simplified several icons to make it clearer what they represent (like Adaptive Join). Here is a quick example of the new scheme in action:

New plan diagram exampleNew plan diagram example

We also added overlays to indicate batch mode (both serial and parallel). Thanks to Itzik Ben-Gan, Paul White, and Niko Neugebauer for their feedback on that.

Batch mode indicator (serial)
Batch mode indicator (parallel)

The most common icons are presented here.

Show the new icons     See Hugo's description of every operator  

There's more to come. I had a great, lively discussion with Hugo Kornelis recently about some of the operator imagery, but this happened way too close to release to affect this build. So we're going to be making some changes in short order, starting with the key lookup and RID lookup operators (addressed in 19.0.1) and a missing Window Spool icon (addressed in 19.0.2).

#23381 – Change memory fraction units to MB instead of KB

This one was very simple; we were exposing memory fractions in KB, which might make sense for some pieces of data, but not for that one. We've updated the scale and it now shows these numbers in MB. Thanks to Paul White for the suggestion.

#44424 – Implement latest showplanxml.xsd from SSMS v18

I check each new CTP as it comes out and watch every build of SSMS to detect changes in ShowPlan XML; when there is new XML we try to incorporate it into our code as early as possible. During the v18 cycle there have been some additions and we now recognize those. As always, we still have work to do to start taking advantage of the new data, but the first step is to make sure the code has access to all of the information (and doesn't trip errors when coming across something it doesn't yet recognize).

47543 – Unhandled exception when selecting root Sequence operator
48264 – NullReferenceException when clicking Get Actual Plan for certain queries

Fixed two exceptions that happen in isolated scenarios – one involving a Sequence operator at the root (not common) and one involving "quoted identifiers" inside a PIVOT operation.

4 replies on “Features and Fixes in SentryOne Plan Explorer 19.0.2”

4 Comments (Comments are now closed.)
  1. Had I not seen your post, I didn't know you've got an update. The auto-update feature didn't work, still showed 18.5.3, or some such. Force updated it and it worked though.
    On a different box I've got 18.4.5, and when checking its update version it shows the max to be 18.5.1. So something is a bit off.

    1. Hi Marian,

      This is intentional.

      When we push a new version to the servers, we let it "bake" typically for a week or so, so that it gets distributed to the people that notice and/or are first time users. This gives us a limited audience, and gives us a chance to fix anything that we didn't catch in internal testing, before forcing the update on thousands and thousands of users. If you pay attention to this post (or just happen to download during that window), you're kind of an "early adopter" for that version.

      The tool hits a service and asks "what is the latest *public* version?" We only increment that response when we have a build that we know is ready and intended for our entire audience. The 18.5.3 build in particular was only pushed out to support a change of address in our EULA, and this isn't something we feel we need to push out to thousands and thousands of existing users who already agreed, but it has to be in the product for new users for reasons the lawyers tried in vain to explain to me. So in that case we left the service response at 18.5.1 because anyone who moved from 18.5.1 to 18.5.3 would do that for zero application changes.

      So that's why it showed 18.4.5 that the latest available was 18.5.1. If that person downloads, yes, they ultimately get 18.5.3. But the 18.5.1 and 18.5.3 people don't need to bother. We show 18.5.3 in the latter case simply because the code says, "if you have a build that's *later* than what the service tells me, you win, *that's* obviously the latest."

      Also, the Start Page within Plan Explorer is worth checking out occasionally. Right now, for example, it is showing a minor update that isn't yet updated on the release service:

      Hope that explains and sorry if it causes any confusion.

  2. I saw a preview of this at SQL Saturday last fall; plan explorer is looking very dapper!! Thank you SentryOne for this superb tool.