SQL Server 2019 Standard Edition Licensing

As SQL Server 2019 gets closer to GA status sometime during 2019, I have an “ask” for the decision makers at Microsoft who do the final analysis and actually decide what the hardware-based license limits will be for SQL Server 2019 Standard Edition. My ask is that these limits be raised for SQL Server 2019.


SQL Server 2017 Standard Edition License Limits

SQL Server 2017 Standard Edition has a 128GB limit (per instance) for the Database Engine, plus an additional 32GB per database for in-memory OLTP, and an additional 32GB per instance for Columnstore index usage. These license limits were the same for SQL Server 2016 with Service Pack 1.

SQL Server 2017 Standard Edition is also limited to the lesser of four sockets or 24 physical cores on non-virtualized instances. On virtualized instances, it is limited to the lesser of four sockets or 24 virtual cores (which may map to logical or physical cores).


SQL Server Standard Edition Licensing History

These Standard Edition license limits have slowly risen over the years. SQL Server 2008 Standard Edition was limited to four sockets, but could use the operating system limit for RAM. SQL Server 2008 was still using processor licensing, so there were no core-based license limits. SQL Server 2008 R2 Standard Edition was also limited to four sockets, but was limited to 64GB of RAM (per instance). SQL Server 2008 R2 still used processor licensing, so there were no core-based license limits.

SQL Server 2012 Standard Edition was limited to 64GB of RAM (per instance). It was also limited to the lesser of four sockets or 16 physical cores. Microsoft raised memory limit for SQL Server 2014. SQL Server 2014 Standard Edition was limited to 128GB of RAM (per instance). It was still limited to the lesser of four sockets or 16 physical cores.

Microsoft raised the core limit for SQL Server 2016. SQL Server 2016 RTM Standard Edition was still limited to 128GB of RAM (per instance). It was limited to the lesser of four sockets or 24 physical cores. There were no license limit increases for SQL Server 2017 Standard Edition. This means we haven’t had a license limit increase for SQL Server Standard Edition since June 2016.


Recent Hardware Advances

In June 2016, Intel Broadwell processors had a maximum of 24 physical cores, which meant that you could hit the SQL Server 2016 core license limit on one socket. It was also very easy to exceed the SQL Server 2016 core license limit with many, lower core count SKUs on a two-socket server. This was a more common scenario.

In May 2019, we now have Intel Cascade Lake-SP processors that have a maximum of 28 physical cores. We will soon have AMD EPYC “Rome” processors that have a maximum of 64 physical cores. These hardware advances mean that there is a good argument that the core license limit should be increased to a higher number. If Microsoft increased the core limit to 64, you would be able to use a two-socket server with two flagship Intel 28-core processors. You would also be able to use a one-socket server with one flagship 64-core AMD EPYC “Rome” processor.

I also believe that the per instance memory limit should raised to a higher value. My suggestion would be to go to 256GB, which would double the current limit. Server-class DDR4 memory prices have gone down to about $7.00/GB for 32GB DIMMs, so it is feasible and affordable to purchase more RAM than people might have used in the past.


SQL Server 2019 Enterprise Edition Value Proposition

The obvious argument for why Microsoft should NOT raise these hardware license limits is that it might cause more people to use SQL Server 2019 Standard Edition rather than SQL Server 2019 Enterprise Edition, which would reduce Microsoft’s revenues. I think this change would actually encourage more people to finally upgrade from legacy versions of SQL Server Standard Edition to SQL Server 2019 Standard Edition. Being able to use higher core count processors and more memory would be an attractive combination which would increase revenues from SQL Server 2019 Standard Edition.

Microsoft could (and really should) do a better job of demonstrating the value of SQL Server 2019 Enterprise Edition for performance, scalability, and useful Enterprise-only features. They could use KB articles, whitepapers, and blog posts to discuss the low level optimizations that are already in Enterprise Edition but not in Standard Edition. Putting all of this information together would be extremely valuable.

For example, running a common benchmark like DBHammer on SQL Server 2019 Standard Edition, and then doing an Edition Upgrade and re-running the benchmark on the exact same system would be a pretty simple way to confirm performance increases. This could be extended by making easy configuration or database/code changes to fully leverage Enterprise Edition and rerunning the benchmark.

Doing a good job of explaining the value of Enterprise Edition would protect Enterprise Edition sales, and actually encourage more people to do Edition upgrades. I have done some work in this area, such as this article:

SQL Server 2016 Enterprise Edition Performance Advantages


Conclusion

I don’t have any illusions that Microsoft will just do what I say here. I really do hope they raise these license limits for SQL Server 2019 in order to help create an even more compelling upgrade story. What do you think?  Is 128GB of RAM and 24 cores enough?




Glenn’s Tech Insights For April 29, 2019

(Glenn’s Tech Insights… used to be part of our bi-weekly newsletter but we decided to make it a regular blog post instead so it can get more visibility. It covers interesting new hardware and software developments that are generally relevant for SQL Server).

SSMS 18.0 Goes GA

SQL Server Management Studio 18.0 became generally available on April 24, 2019. This means that it is the final release version (as opposed to being a preview or release candidate version). It is Build 15.0.18118.0. The Release Notes detail all of the new features, improvements and bug fixes in SSMS 18.0.


image

Figure 1: SSMS 18.0 About Form


It is officially supported on Windows 10 version 1607 Windows Server 2016, Windows Server 2012 R2 (64-bit), Windows Server 2012 (64-bit), and Windows Server 2008 R2 (64-bit). Older preview versions worked on 64-bit Windows 7 SP1.

If you have a preview or release candidate version of SSMS 18.0 installed, you should uninstall it before you install the GA release version.You can download it here.


SQL Server 2019 CTP 2.5 Available

On April 24, 2019,  Microsoft also released SQL Server 2019 CTP 2.5. Many of the new features in this release are focused on making it easier to deploy and manage “big data clusters”.  This is how Microsoft describes a big data cluster:

Starting with SQL Server 2019 preview, SQL Server big data clusters allow you to deploy scalable clusters of SQL Server, Spark, and HDFS containers running on Kubernetes. These components are running side by side to enable you to read, write, and process big data from Transact-SQL or Spark, allowing you to easily combine and analyze your high-value relational data with high-volume big data.

Kubernetes Cluster

Figure 2: Kubernetes Cluster

There are also improvements in sys.dm_exec_query_plan_stats, including a new database scoped configuration option that lets you control whether last query plan statistics are available at the database level (as opposed to instance-wide with TF 2451).

I think Microsoft must be pushing pretty hard to get SQL Server 2019 to GA status by July 9, 2019, which is when SQL Server 2008 and 2008 R2 fall out of extended support. This is just my own common sense speculation. That’s what I would be pushing for if I were in charge!


AMD Ryzen 7 2700X 5oth Anniversary Edition

AMD is releasing a special 50th Anniversary Ryzen 7 2700X desktop processor. This processor will have the same exact specifications as a normal AMD Ryzen 7 2700X processor, but will come in special gold colored packaging. It will also have a laser engraved signature from AMD President and CEO  Dr. Lisa Su on the heat spreader as shown in Figure 3. This will be covered up when you install the processor.

50th Anniversary Ryzen

Figure 3: 50th Anniversary AMD Ryzen 7 2700X Processor

To be fair, AMD is including a few other things to help justify the cost of this processor compared to a typical Ryzen 7 2700X processor. These include a coupon for a AMD 50th Anniversary T-Shirt, and a special AMD sticker signed by Dr. Su.

AMD Ryzen 7 2700X Package

Figure 4: AMD 50th Anniversary AMD Ryzen 7 2700X Packaging

Some retailers are also adding game bundles to the deal.

Personally, I wouldn’t buy this. It is interesting as a collector’s item, but I am not that much of a collector. It would have been much more interesting if AMD had decided to offer higher specifications on a cherry-picked version of this processor, similar to what Intel did with the special Intel Core i7-8086K processor.




Why You Shouldn’t Use an Intel Xeon Silver Processor for SQL Server

Introduction

Intel has four main segments in their Second Generation Intel Xeon Scalable Processor Family. These include Xeon Bronze, Xeon Silver, Xeon Gold, and Xeon Platinum. The reason why there are six boxes in Figure 1 is because Intel further segments this with two Xeon Platinum product segments and two Xeon Gold product segments. This is typical over-segmentation by Intel, but it is just the tip of the iceberg as far as their product segmentation goes. That is a topic for another blog post!


2nd Generation Intel Xeon Scalable

Figure 1: Second Generation Intel Xeon Scalable Processor Segments


Modern SQL Server Licensing

Since SQL Server 2012, Microsoft has used core-based licensing rather than socket-based licensing. For non-virtualized servers, you buy core licenses in two-packs, with a minimum of four processor core licenses per physical CPU. These correspond to physical processor cores, not logical processor cores, so Intel HT and AMD SMT is a free benefit. This can give you roughly 25% more overall CPU capacity (certainly not 100% like you might assume by just counting total logical cores).

With virtualized servers, you also buy core licenses in two-packs, with a minimum of four processor core licenses per virtual machine. These correspond to virtual processor cores, which might map to logical cores or physical cores, depending on whether Intel HT or AMD SMT is enabled on the host machine. If you license all of the physical cores on the virtualization host and you have Microsoft Software Assurance, you can forget about counting vCPUs in your VMs, and you can configure them anyway you want to.

A key fact here is that Microsoft does not change the license pricing based on the actual performance of a processor core. It doesn’t matter how old or new the processor is, it doesn’t matter how slow or fast it is, the price per core is exactly the same. You need to be aware of this, and keep it in mind as you select the exact processor to use for SQL Server. Otherwise, you will be losing performance and scalability, or paying for too many SQL Server core licenses, or some combination of both. Each SQL Server 2017 Enterprise Edition core license is $7,128.00.


Intel Xeon Gold Processor Family

The Intel Xeon Gold Processor Family is divided between the entry level two or four-socket Gold 5200 family and the enhanced two or four-socket Gold 6200 family. According to Intel,

“With support for the higher memory speeds, enhanced memory capacity, and four-socket scalability, Intel® Xeon® Gold processors deliver significant improvement in performance, advanced reliability, and hardware-enhanced security. It is optimized for demanding mainstream data center, multi-cloud compute, and network and storage workloads. With up-to four-socket scalability, it is suitable for an expanded range of workloads.”

I think the Intel Gold Processor Family is the sweet spot for most SQL Server workloads. It lets you choose from between 4 and 22 physical cores, with frequency-optimized, lower core count SKUs being available. This lets you get higher single-threaded CPU performance while minimizing your physical core counts, which lets you minimize your SQL Server license costs.


Intel Xeon Silver Processor Family

The Intel Xeon Silver Processor Family is for “enhanced” two-socket servers. According to Intel,

“Intel® Xeon® Silver processors deliver essential performance, improved memory speed, and power efficiency. Hardware-enhanced performance required for entry data center computes, network, and storage.”

Compared to the entry level Intel Xeon Bronze Processor Family, the Silver Family offers hyper-threading, Turbo Boost, DDR4-2400 support, and larger L3 cache sizes. This makes the Bronze family an even worse choice for SQL Server usage.

According to Intel,

“The Intel® Xeon® Bronze processors delivers entry performance for small business and basic storage servers. Hardware-enhanced reliability, availability, and serviceability features designed to meet the needs of these entry solutions.”


Processor Shootout

Let’s compare the Intel Xeon Silver 4208 processor to the Intel Xeon Gold 6244 processor. These are both Second Generation Intel Xeon Scalable processors (Cascade Lake-SP), using the same microarchitecture, so we can directly compare them.

The 14nm Intel Xeon Silver 4208 processor has 8 cores/16 threads with a Base clock speed of 2.10 GHz and a Max Turbo clock speed of 3.20 GHz. It has an 11MB L3 cache and supports DDR4-2400 memory. It has two Ultra Path Interconnect (UPI) links and can scale up to two sockets. It does not support Intel Optane DC Persistent memory. Its thermal design power (TDP) is 85 watts and it has one AVX-512 FMA unit. It has a recommended customer price of $417.00.

The 14nm Intel Xeon Gold 6244 processor has 8 cores/16 threads with a Base clock speed of 3.60GHz and a Max Turbo clock speed of 4.40GHz. It has an 25MB L3 cache and supports DDR4-2933 memory. It has three Ultra Path Interconnect (UPI) links and can scale up to four sockets. It does support Intel Optane DC Persistent memory. Its thermal design power (TDP) is 150 watts and it has two AVX-512 FMA units. It has a recommended customer price of $2,925.00.

You might be thinking “Wow, that is a big difference in the cost of the processors. I could save over $5,000.00 in a two-socket server by choosing the Silver processor instead of the Gold processor”. That is true, but lets take a look at what you would lose by doing that.

If your server has a typical CPU load, most of your processor cores will be running at their base clock speed most of the time. This makes the base clock speed a very important metric for SQL Server usage. There is a huge difference (71.4%) between 2.10 GHz and 3.60 GHz. The base clock speed of the Gold 6244 is actually higher than the Turbo clock speed of the Silver 4208. If your power management is properly configured for best performance, you will always be running a higher clock speed on all cores of the Xeon Gold 6244 than the Xeon Silver 4208 can ever run, even on a single core at full turbo boost speed. The Turbo clock speed difference between the two processors is 37.5%.

The L3 cache of the Gold 6244 is more than twice the size of the Silver 4208. This means there is a much better chance of finding the data you need for a query in the L3 cache rather than in your main DRAM memory. If you do have to go out to main DRAM, your DDR4-2933 memory with the Xeon Gold 6244 will be noticeably faster than the DDR4-2400 memory with the Xeon Silver 4208.


Comparing Estimated TPC-E Scores

So far, there has been one official TPC-E benchmark score on a system with Second Generation Intel Xeon Scalable processors. It is for a two-socket Lenovo ThinkSystem SR650, with two Intel Xeon Platinum 8280 processors. This system had a TPC-E Throughput score of 7,012.53. This is a decent measure of the CPU capacity of this system. We can use this actual score as a baseline for comparison against other Intel processors from the same generation.

Since this system has a total of 56 physical cores, we can divide 7012.53 by 56 to get a score/core of 125.22, which is a good measure of the single-threaded performance of this processor. Remember, this submission is for a system running SQL Server 2017, so it is not just a synthetic benchmark.

For a simple but relatively accurate comparison, we can adjust this score to account for the difference in the number of physical cores and the difference in the base clock speeds between the processor used for the actual TPC-E submission and any other processor from that same generation.

Here is the math for both processors:


Intel Xeon Gold 6244     16 cores/56 cores = .29 core count adjustment      3.60 GHz / 2.70 GHz = 1.33 base clock speed adjustment

7012.53 times 0.29 equals 2003.58, then 2003.58 times 1.33 equals a 2671.44 total estimated score

If we take this total estimated score of 2671.44 divided by 16 total physical cores in the system, we get an estimated 166.97 score/core


Intel Xeon Silver 4208   16 cores/56 cores = .29 core count adjustment      2.10 GHz / 2.70 GHz = 0.78 base clock speed adjustment

7012.53 times 0.29 equals 2003.58, then 2003.58 times 0.78 equals a 1558.34 total estimated score

If we take this total estimated score of 1558.34 divided by 16 total physical cores in the system, we get an estimated 97.40 score/core


Conclusion

These calculation results show that we would have significantly more capacity and much better single-threaded CPU performance with the Intel Xeon Gold 6244 compared to the Intel Xeon Silver 4208. From a SQL Server perspective, the $5000.00 lower hardware cost would be a minor consideration compared to the $114,048.00 license cost for SQL Server 2017 Enterprise Edition.

This methodology does not account for factors such as total L3 cache size, L3 cache size per core, memory speed, and number of UPI links. If these were factored in, the Intel Xeon Gold 6244 would do even better compared to both the Intel Xeon Platinum 8280 and the Intel Xeon Silver 4208.

The difference is so stark that I would consider dropping down to the four-core Intel Xeon Gold 5222 processor, which would save me $56,024.00 in SQL Server 2017 Enterprise Edition license costs on a two-socket system. Unfortunately, Intel has not released a six-core Intel Xeon Gold 6228 processor to replace the old Intel Xeon Gold 6128 processor, so we have a big gap between the Xeon Gold 5222 and the Xeon Gold 6244.

Another alternative would be to have just one Intel Xeon Gold 6244 processor in a two-socket system. If you did that, you would lose half your total memory capacity and half of your total PCIe 3.0 lanes.

A recent conversation on Twitter prompted this post. I would love to hear your thoughts on this either in the comments section or on Twitter. I am GlennAlanBerry on Twitter.