SSMS 19.1 Performance Improvements

On May 24, 2023, Microsoft released SQL Server Management Studio 19.1. The release notes are here, and they include this item:

  • General – Delayed the initialization of the output window to prevent slow SSMS startup.

SSMS 18.X cold startup performance is a big issue for me, since I regularly have to start SSMS 18.X on various small VMs running on older, slower server-class processors. BTW, “cold startup” is the first time that a program is loaded into a process since the last reboot of the operating system, so nothing from that program is already loaded in memory.

The cold startup process can often take several minutes on some VMs, so I waste a significant amount of time every day looking at the SSMS splash screen, waiting for the initial “Connect to Server” dialog to appear.

SSMS 19.1 Performance Improvements
SSMS 19.1 Connect to Server Dialog

I had noticed that SSMS 19.1 seemed to startup noticeably faster than older releases, but maybe that was just wishful thinking on my part. Rather than speculate, I decided to do some testing, comparing the cold startup performance of SSMS 19.1 to SSMS 18.12.1 on six different bare metal desktop machines in my lab (that all had different CPUs). I wanted to confirm whether there were any SSMS 19.1 performance improvements.

Testing Methodology

SSMS 18.X and SSMS 19.X can exist side-by-side with no problems, which made this testing effort easier. Here is how I went about it:

  • Install SSMS 18.12.1 and pin it to the Task Bar
  • Install SSMS 19.1 and pin it to the Task Bar
  • Start SSMS 18.12.1 for the first time
    • This will create folders under SQL Server Management Studio for your user profile
  • Start SSMS 19.1 for the first time
    • This will create folders under SQL Server Management Studio for your user profile
    • You will also get a prompt about whether you want to import settings from SSMS 18
  • Cold boot the machine and wait for it to settle down after restarting
  • Start SSMS 18.12.1 using the Task Bar shortcut while starting a stopwatch app on my phone
    • Record the elapsed time until the “Connect to Server” dialog appeared
  • Start SSMS 19.1 using the Task Bar shortcut while starting a stopwatch app on my phone
    • Record the elapsed time until the “Connect to Server” dialog appeared
  • Cold boot the machine wait for it to settle down after restarting
  • Repeat the startup tests and machine restart sequence three times
  • Average the elapsed time results

Test Machines

My real world observations of SSMS 18.X cold startup performance over an extended period led me to believe that it was a CPU-bound process. The amount and speed of RAM and the storage performance for the drive where SSMS was installed seemed to have very little effect on the elapsed time for cold startup.

Single-threaded CPU performance seemed to be the biggest bottleneck, followed by multi-threaded CPU capacity/performance to a lesser extent. For example an 8 vCPU VM will load SSMS faster than a 4 vCPU VM (where both VMs had the same host CPU). Having a “fast” host CPU (with good single-threaded CPU performance) makes a big difference!

I used six different desktop machines for these tests:

This includes three different generations of AMD machines and two generations of Intel machines. Even the slowest client machine in the test (the AMD Ryzen 3 3300X) has significantly faster single-threaded CPU performance than most server processors.

The AMD machines were all running Windows 10 Professional 22H2, fully patched, along with the lastest native drivers and firmware. The Intel machines were running Windows 11 Professional 22H2, fully patched, along with the lastest native drivers and firmware. In addition, the Windows machines had their P-cores and E-cores enabled. All of the machines had XMP/DOCP enabled to get better RAM performance.

I also ran the quick and dirty CPU-Z CPU benchmark test on each machine, just to get a rough comparision of the ST and MT CPU performance of each processor. Spoiler alert: SSMS cold startup time seems to track pretty closely to CPU-Z Single Thread benchmark scores.

CPU-Z Bench Scores

Test Results

As you can see, SSMS 19.1 cold startup performance was faster than SSMS 18.12.1 on all six processors. The elapsed time reduction ranged from 10.3% to 24.8%. Keep in mind that most server processors have lower single-threaded CPU performance than these desktop processors. This means that they will probably see a larger reduction in cold startup elapsed times with SSMS 19.1

SSMS cold startup performance seems to correlate pretty well to CPU single-threaded performance as measured by CPU-Z.

One interesting point is the difference between the Zen 2 8C/16T AMD Ryzen 7 3700X and the Zen 2 4C/8T AMD Ryzen 3 3300X. They both have nearly identical ST performance, but the higher core count 3700X can startup SSMS more quickly.

Updates From Microsoft

Erin Stellato has a couple of blog posts (so far) that go into more detail about improvments and changes in SSMS 19.1

Final Words

I think these test results help confirm that SSMS 19.1 has better cold startup performance than SSMS 18.12.1 in most scenarios. The actual difference is not that great if you have an extremely fast CPU, but many people don’t have that luxury. If you are running SQL Server in a cloud VM or you are using a jumpbox to run SSMS, you might have a much slower CPU than any of the client CPUs that I tested.

I really want to thank Microsoft’s Erin Stellato and her team for getting this performance improvement into SSMS 19.1! This is yet another reason to upgrade to SSMS 19.1, even if you are using an older version of SQL Server (SQL Server 2014 and newer).

If you have any questions about this post, please ask me here in the comments or on Twitter. I am pretty active on Twitter as GlennAlanBerryThanks for reading!

Categories SSMSTags , , ,

8 thoughts on “SSMS 19.1 Performance Improvements

  1. I upgraded to 19.0 shortly after release and noticed that many things were faster in comparison to 18.x. I’d be curious about the differences between 19.0 and 19.1. Between 19.0 and 19.1, I didn’t notice any performance difference, but I did not measure.

    Also, the performance improvements in VS22 are huge. When SSMS starts using VS22, I expect there to be a huge improvement in performance. Then, we may finally have dark mode within SSMS.

    1. SSMS 20 will be 64-bit and use a newer Visual Studio Shell. It is not supposed to be released until sometime later this year.

      1. 64-bit is a welcomed change. I cannot wait!

  2. You are comparing version 18 to 19.1, but if the improvement really came in the latest version (meaning ver 19.1 vs ver 19.02 ?!?

    As I wrote on Twitter, I did not test before and after the new upgrade, so I don’t have a way to compare exact time, but by feeling. I do not feel any change in start time of version 19.1 comparing to ver 19.02 on several machines it was installed on.

    I noticed a significant improvement in the time with version 19.02 on my laptop, but I don’t consider a single installation to be representative.

    I installed it on multiple machines (over 23 now) including for example two Virtual machines:
    – Standard E4ads v5 (4 vcpus, 32 GiB memory)
    – Standard NV32as v4 (32 vcpus, 112 GiB memory)
    and a laptop for example:
    – intel core i7 1165g7 with 16 GB memory

    Following your request, I tested (recorded) the exact time for the small VM (E4ads v5) and the recording is at the discussion on Twitter, here:

    1. I have been told by someone at Microsoft (who is in a position to know) that there were also some startup performance improvements in earlier releases of SSMS 19 compared to SSMS 18.12.1, but they are not documented. Microsoft is very skittish about mentioning performance improvements like this since they can’t guarantee that they will show up on every machine.

      I chose to compare SSMS 18.12.1 to SSMS 19.1 since they can run side-by-side, so it is easier to run multiple tests on the same machine. I also think there are many people running various versions of SSMS 18.X who have not bothered to upgrade to SSMS 19.X for various reasons. SSMS 19.1 is supposed to be the last major release of SSMS 19.X, since Microsoft is now working on SSMS 20.

      Perhaps much of the startup performance improvement that I have seen between 18.12.1 and 19.1 actually happened in 19.0, 19.01, or 19.02. I don’t know without doing more testing.

      1. First of all I have to say sorry… I should have started my message by saying: Great post 👍

        by the way, I also contacted one of the team in closed channels of the MVP with feedback, and of course we cannot talk about that here.

        Your choice in comparing these versions is completely clear. I was just providing some additional, more focused information about the latest version specifically, which in no way replaces the work you’ve done.

        The improvement in performance that I felt was between version 19.01 and version 19.02. But I want to emphasize again that this is not a test, but only unrepresentative behavior.

Please tell me what you think

%d bloggers like this:
search previous next tag category expand menu location phone mail time cart zoom edit close