sqlskills-logo-2015-white.png

Upgrading SQL Server–Standard Edition License Limits

SQL Server Standard Edition License Limits

One thing you need to consider as you are contemplating an upgrade and migration effort from a legacy version of SQL Server Standard Edition to a new version of SQL Server Standard Edition are the per instance license limits for memory, sockets, and physical cores.

This is far from purely an academic exercise. If you inadvertently use hardware or a VM that exceeds these per-instance license limits for SQL Server Standard Edition, you could have an unbalanced configuration that does not perform as well as it could. You could also be forced to pay for SQL Server Standard Edition core licenses that you are not even allowed to use in a single instance.

SQL Server 2008 Standard Edition

SQL Server 2008 Standard Edition has a license limit of four processor sockets. This applies whether it is virtualized or not. Since SQL Server 2008 used processor-based licensing, there is no separate, lower license limit to the number of processor cores, beyond the 64 logical processor limit shared with SQL Server 2008 Enterprise Edition.

SQL Server 2008 Standard Edition can use up to the operating system limit for RAM, just like SQL Server 2008 Enterprise Edition. Since SQL Server 2008 will run on Windows Server 2012 R2, you could conceivably have up to 4TB of RAM with SQL Server 2008 Standard Edition, although most people will be running SQL Server 2008 Standard Edition on Windows Server 2008 R2 or older, which have lower RAM limits. Typical two-socket servers from 2008-2009 would only support anywhere from 32GB to 288GB of RAM.

SQL Server 2008 R2 Standard Edition

SQL Server 2008 R2 Standard Edition also has a license limit of four processor sockets. This applies whether it is virtualized or not. Since SQL Server 2008 R2 still used processor-based licensing, there is no separate, lower license limit to the number of processor cores, beyond the higher 256 logical processor limit shared with SQL Server 2008 R2 Enterprise Edition. Of course 2010-2011 vintage two-socket servers only had up to 32 logical processors, so this wasn’t really an issue.

Unfortunately, SQL Server 2008 R2 Standard Edition had a new memory license limit (for the Database Engine) of 64GB per instance, while 2010-2011 vintage two-socket servers supported up to 288GB of RAM. This new license limit for Standard Edition was the start of a trend that continues up to the present day.

SQL Server 2012 Standard Edition

SQL Server 2012 made the move from processor-based licensing to core-based licensing. SQL Server 2012 Standard Edition is limited to four processor sockets, or 16 physical cores, whichever is lower. Again, this applies whether the instance is virtualized or not. Intel Xeon E5-2697 v2 processors had 12 physical cores, so you could exceed this license limit on a two-socket commodity server during the period before SQL Server 2014 was released.

Unfortunately, SQL Server 2012 Standard Edition had the same memory license limit (for the Database Engine) of 64GB per instance, while 2012-2013 vintage two-socket servers supported up to 768GB of RAM. The gap between the artificial license limit and what a commodity two-socket server could support had grown larger.

SQL Server 2014 Standard Edition

SQL Server 2014 Standard Edition is also limited to four processor sockets, or 16 physical cores, whichever is lower. Again, this applies whether the instance is virtualized or not. Intel Xeon E5-2699 v3 processors had 18 physical cores, so you could also exceed this license limit on a two-socket commodity server during the period before SQL Server 2016 was released.

SQL Server 2014 Standard Edition raised the memory license limit (for the Database Engine) to 128GB per instance, while 2014-2016 vintage two-socket servers supported up to 768GB of RAM. The gap between the artificial license limit and what a commodity two-socket server could support had grown smaller, which was a good thing.

SQL Server 2016 Standard Edition

SQL Server 2016 Standard Edition is still limited to four processor sockets, or 24 physical cores, whichever is lower. Again, this applies whether the instance is virtualized or not. The core limit increase was a welcome improvement. Intel Xeon E5-2699A v4 processors had 22 physical cores, so you could also exceed this license limit on a two-socket commodity server during the period before SQL Server 2017 was released.

SQL Server 2016 Standard Edition kept the memory license limit (for the Database Engine) at 128GB, per instance, while 2017 vintage two-socket servers now support up to 3TB of RAM (for Intel) or 4TB (for AMD) of RAM. The gap between the artificial memory license limit and what a commodity two-socket server can support has grown much larger, which is a bad thing. One improvement with SQL Server 2016 SP1 was separate memory limits of 32GB per instance for Columnstore segment cache usage, and 32GB per database for in-memory OLTP usage.

SQL Server 2017 Standard Edition

So far, Microsoft has not publicly announced any plans to raise the per-instance socket count, core count or memory limits for SQL Server 2017 Standard Edition over what they are in SQL Server 2016 Standard Edition with Service Pack 1.

Personally, I think this is a short-sighted policy that ignores the realities of modern two-socket commodity server hardware. Currently available Intel-based two-socket servers, such as the Dell PowerEdge R740 have Intel Xeon Scalable Processor Family processors, such as the Intel Xeon Platinum 8180M, which has 28 physical cores, and supports 1.5TB of RAM per socket. Upcoming AMD EYPC 7600 series processors have up to 32 physical processor cores and support up to 2TB of RAM per socket.

If someone in your organization purchased a two-socket Dell PowerEdge R740 with two Intel Xeon Platinum 8180M processors, and then installed SQL Server 2016 Standard Edition on your new server, here is what would happen:

First, by default, SQL Server would run all 24 of its license-limit physical cores on the first processor in the machine, only using 24 of the 28 actual cores in the first processor, with nothing running on the second processor. You can correct this issue using an ALTER SERVER CONFIGURATION command, so that you are using 12 physical cores on each physical processor, as I discuss here.

Second, Microsoft would still expect you to license all of the physical cores in the entire machine, even though you cannot use them in a single instance. For 56 physical cores times $1,858/core for SQL Server 2016 Standard Edition, that would be $104,076.00 for the entire machine. The extra license cost, for cores you cannot use in a single instance is $59,456.00. Not to mention that this single instance would also be limited to 128GB of RAM for the Database Engine, plus the extra memory limits for Columnstore and In-memory OLTP usage.

This is a worst case scenario example. Microsoft would probably argue that you could install multiple instances of SQL Server 2016 Standard Edition (at no extra cost) to allow you to actually use all of those core licenses that you had to buy. They would also argue that you could install SQL Server 2016 Standard Edition in a VM, and then only have to pay for the VM license costs.

Even so, I think that is a less than optimum situation. Microsoft should consider raising the Standard Edition core and memory limits to a more realistic level, and they should also clarify the licensing so that they explicitly don’t expect you to pay for core licenses that you cannot use in a single instance.

 

Additional Resources

I have a new Pluralsight course, SQL Server: Upgrading and Migrating to SQL Server 2016 has just been published. This is my eleventh course for Pluralsight, but the complete list of my courses is here.

Building on this online course is a new three day class, IEUpgrade: Immersion Event on Upgrading SQL Server, taught by myself and Tim Radney. The first round of this course will be taught in Chicago from October 11-13, 2017.

Finally, I will be presenting a half-day session called Migrating to SQL Server 2017 at the PASS Summit 2017 in Seattle, WA from October 31- November 3, 2017.

Here is a link to the complete series about upgrading SQL Server.

2 thoughts on “Upgrading SQL Server–Standard Edition License Limits

  1. As to the current SQL Standard Licensing cost, are you taking into account that the per Standard Core license cost is based on 2 cores? Not one core. So, your estimate for 56 cores, would be $52,024.

    I’d like to know if there is a limit to how many SQL Standard Server licenses you can put on a 3 host VM that had 72 cores total (24 each).

    So, if you bought 36 Core licenses (36 2-packs to support 72 cores), can you put as many OS’s on that VM with as many SQL Server Standard instances the VM can handle?

    1. Even though SQL Server core licenses are sold in two-packs, the actual retail price per core is $1858 (for Standard Edition). https://www.microsoft.com/en-us/sql-server/sql-server-2017-pricing

      The SQL Server Standard Edition core license limit is 24 physical cores per instance.

      With a VM, you are counting vCPUs. If you had three VMs on one physical host, Microsoft would expect you to buy the required number of licenses for each VM. The exception to this would be if you bought enough core licenses for the entire physical host, and if you bought Microsoft Software Assurance. In that case, you could have as many core licenses (up to 24) on each instance, and as many VMs on the host, as you wanted.

Leave a Reply

Your email address will not be published. Required fields are marked *

Other articles

Imagine feeling confident enough to handle whatever your database throws at you.

With training and consulting from SQLskills, you’ll be able to solve big problems, elevate your team’s capacity, and take control of your data career.