Which execution plan icons are relevant today?

Which execution plan icons are relevant today?

Back in 2018, when I started working on the SQL Server Execution Plan Reference, I spent quite some time thinking about what icons to show for all operators. I chose at that time to include four sets of icons: the version of the icons in the then current version of SQL Server Management Studio (SSMS); the version that was used in SSMS before the complete art rework in SSMS 17.4; the version that was at that time used in the execution plan viewer of Azure Data Studio (ADS); and the version used in SQL Sentry’s free tool, Plan Explorer.

This has resulted in this list of operators, where all those four versions of the icon for each operator is shown. And on each page for any individual operator, you will also see those same four icons.

Why those versions?

The reason for including the icons as shown in the then current version of SSMS is obvious, that was and is one of the official tools for query writing and executing and for working with execution plans. The 17.4 version of SSMS, with its full rework of the artwork for all execution plan icons, was released in December 2017, mere months before I started working, so I assumed that some people might not have upgraded. And people might be working with SQL Server 2014 or older, which came with its own integrated SSMS version that could not be updated. For those people I wanted to include the older version (SSMS 17.3 and older) of the icons as well.

ADS had, at that time, very limited support for working with execution plans. The displayed plans were (in my opinion) quite hideous and clunky, the size of the icons made it hard to get a good idea of the execution plans, and there were lots of bugs and shortcomings. But still, ADS was and is the other official Microsoft tool for querying, it did have support for execution plans, and people might be using it. Especially because, unlike SSMS, ADS actually works on other systems besides Windows. So for that reason I felt that I also had to include the ADS versions of all icons.

Finally, of all third-party tools that offered support for execution plans, SQL Sentry Plan Explorer was at that time in a league of its own. Even though the tool was free, SQL Sentry was clearly very committed to supporting it. They were constantly fixing bugs and adding features, and the people in charge of the tool were very responsive. While not having data to back this up, I assumed that a lot of people (at least a lot of the people interested in execution plans) were using Plan Explorer at the time. Several bloggers who wrote about execution plans used screenshots clearly taken from Plan Explorer, rather than from SSMS or ADS, in their blogs. All in all, I felt that this tool was very relevant to people working with execution plans. Whereas I did not feel that same way about other third-party tools for execution plans.

How about now?

Fast forward to today. More than five years have passed since I published the first pages of the SQL Server Execution Plan Reference. The world has changed, in many ways. But the icons on the reference pages have not. One might wonder whether the choices I made over five years ago are still relevant today. Or rather, I know that they are not all relevant anymore, I know that there is very good reason to rethink those choices. But this time, I prefer not to do this on my own. This time I am asking your feedback.

Current version of SSMS

This is the only version that is not up to debate. The artwork that was introduced for the execution plan icons in SSMS 17.4 is still used, unchanged, in its current version. (Or, if there have been changes, then they are so subtle that I have not noticed them). SSMS is, as far as I know, still the most used tool for querying and also for viewing execution plans. So of course the icons as displayed in this tool remain extremely relevant for the SQL Server Execution Plan Reference.

In addition, ADS has been equipped with a completely new execution plan viewer, since version 1.35.0 (the February 2022 version). This new execution plan viewer uses (as far as I can see) the exact same artwork as SSMS has been using since version 17.4. So this means that this single version of the icons now covers the current version of the icons in both of the official Microsoft tools.

SSMS 17.3 and older

Welcome to my first struggle. I really have a hard time deciding whether to remove the older versions of the SSMS icons from the SQL Server Execution Plan Reference, or whether to keep them for now.

Given that the standalone version of SSMS reminds you of new updates whenever you start it, I really cannot imagine that anyone is still using a 16.x or 17.x version. After all, there have been thirteen versions of SSMS 18.0, and we are currently already at SSMS 19.0.2.

However, there might very well still be companies still running SQL Server 2014 or older. Those versions came with their own integrated version of SSMS. That version never prompts to update to the standalone version. So I can imagine that those companies, and their employees, still use the SSMS version that came with their SQL Server version.

In fact, I know from personal experience at least two such companies. One is a small company that hires me two or three times per year for a few hours to solve an immediate problem, usually caused by user error. Otherwise, their SQL Server 2012 installation happily hums along. Yes, it is out of support. But it works, flawlessly. They don’t have the budget or manpower to upgrade, they don’t do any new development, they just use their existing software that works without issues – well, except for the occasional user error, in which case they call me.

And a larger customer that I used to work for until I had to call in sick due to leukemia in September 2022 had at that time a wide range of SQL Server instances, with versions ranging from SQL Server 2012 up to SQL Server 2019. When I worked there, I always had two versions of SSMS installed, and often had both open. I used the newest standalone SSMS version to do administrative tasks, especially on the newer instances for which the older version lacked support. But I had to use the older version for maintenance on stored procedure code, because the standalone version had broken the integration with their source control tool.

What I don’t know is whether my customers were outliers, or whether lots of people working with SQL Server still often have reasons why they have to use older versions of SSMS. If it’s just me (and perhaps a handful of others across the world), then I feel that including the older versions of the execution plan icons is no longer relevant. But if there still is a significant number of people who actively work with older versions of SSMS, then I would prefer to keep including the older SSMS versions of the icons in the SQL Server Execution Plan Reference.

That’s why I write this blog, and ask for your feedback. Please leave a comment, tweet me, or drop me an email, to share your feelings and preference about including or removing the “old” SSMS version of the execution plan icons.

ADS

As already mentioned above, ADS has seen a major update to its execution plan support in February 2022, version 1.35.0. The old code to work with execution plans has been ripped out completely, and a whole new execution plan viewer was added instead.

As part of that major update, all artwork for the icons was also changed. Gone were the (in my opinion) ugly and overly large icons. Instead, the tool now uses the exact same icons that are also used in SSMS. So that means that, for the current versions of ADS, I don’t need to include a separate set of icons anymore. I merely need to change the heading above the column that already shows the “SSMS 17.4 and up” version to “SSMS and ADS (current versions)”.

But what about the icons as used in ADS in versions 1.34.0 and older? Should I keep showing that version as well?

I personally think not. Since ADS has the same habit of nagging you when a new version is available, and since the newest version of ADS is also sneakily installed whenever you install a new version of SSMS (unless you tell it explicitly not to), I have a hard time imagining that there are still many people working with a version of ADS that is already over a year old. As such, I don’t think that including this outdated version of the icon artwork is still relevant to anyone.

But … I might be wrong. Again, that is why I ask for your feedback now. Please leave a comment, tweet me, or drop me an email, to let me know whether you believe that the “old” ADS versions of the icons should remain included in the SQL Server Execution Plan Reference, or whether they are better removed.

Plan Explorer

The fourth version of the icons also gives me quite some headaches. In 2020, SQL Sentry was acquired by Solarwinds. The people that used to be responsible for Plan Explorer decided to leave the company. I had an excellent connection to those people, but I currently do not know even a single name who works on that tool.

I do know that Plan Explorer is still available, and still free. I do know that new updates have been released since the acquisition. But based on the limited information that I have available, I also have reasons to believe that support for this tool has become a much lower priority after the acquisition.

I also believe that, unlike in the SQL Sentry days, the new owners are not investing much effort in spreading the word about Plan Explorer. That means that new users are far less likely to know about the existence of the tool, and hence fewer people will now use it. Also, based on what I see, I have the feeling that less bloggers than before are now using the Plan Explorer version of execution plans for their screenshots, as opposed to the SSMS or ADS versions.

But on the other hand, people who already were using Plan Explorer are unlikely to stop using it. It still works, after all. And as long as Solarwinds will at the very least keep updating Plan Explorer to add support for new execution plan features in newer releases of SQL Server, the tool remains a relevant and useful tool for all.

You will notice how often I used words such as “believe” or “feel” in the paragraphs above. I have no had data at all. And due to first Covid-19 and thereafter my own leukemia, I have not had the opportunity to talk to people about subjects such as this during the last few years. In other words, I might be completely wrong. The tool might have been completely abandoned by SolarWinds. It might be in very active support, and thriving more than ever before. Or anything in between.

So, once more, I need your feedback. I personally lean towards leaving the Plan Explorer version of the icons for now. But is that the right choice? Once more, send a comment, a tweet, or an email, and share your ideas!

Other tools

Five years ago, based on my understanding of the market at that time, I had good reasons to include the icons from just one single third party tool. At that time, I believe I had a fairly good knowledge of available tools and their popularity, due to my contacts with vendors and customers at various conferences.

But those contacts have been non-existent for the past years. I’m afraid – no, I know! – that I have lost touch with these groups. So I simply do not know what other third-party execution plan tools, if any, are currently relevant in the market. So that is my final request to you, the reader: Leave a comment, tweet me, or drop me an email, and use that to tell me about the third-party tools that you use to work with execution plans. What tools are they, do they use the same artwork for icons as SSMS and ADS or do they have their own artwork, do you think they should be separately mentioned in the SQL Server Execution Plan Reference, and why?

Conclusion

Based on my own feelings and ideas, I believe that the icons currently labeled as “SSMS 17.4 and up” should stay, but relabeled as “SSMS and ADS (current versions)”. I also believe that the “SSMS 17.3 and older” and “Plan Explorer” version should stay, whereas the “Azure Data Studio” version can be removed. And I currently do not know of any third-party tool for viewing execution plans that is relevant enough to be added.

But I am unsure about four of those five decisions. That’s why I wrote this post. I hope to get lots of feedback, to help me confirm my choices – or change them if they are no good!

Back home, but still a long way to go
T-SQL Tuesday 162 – Execution plans according to ChatGPT

Related Posts

No results found.

2 Comments. Leave new

  • My KISS opinion – just keep the current SSMS version icons, let the rest go. Especially since they’re now shared with ADS.

    Reasoning – the current versions of SSMS generally work with older versions of SQL Server. I don’t know what source control tool was having the issue with SQL 2012, but I’ve connected to as old as 2008 just fine. If anyone’s running a range of SQL server versions, they’re going to be using the current SSMS for most tasks, and only switching to old SSMS when needed. So they’re used to the new icons.

    And for the Sentry icons – if anyone’s advanced enough to be digging through Sentry Plan explorer details, they’re probably already familiar with what the icons are and look like. I don’t think I even realized it uses different icons until you pointed it out. All my brain sees as seeks/scans/parallelism/etc. – the icon matched SSMS enough that I didn’t notice differences 😀 so leave them out too, for simplicity’s sake.

    Reply
  • […] months ago, I asked a question: Which execution plan icons are relevant today? In that post, I talked about the operator icons shown in the SQL Server Execution Plan Reference. I […]

    Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close