In this post I will try to explain SQL 2019 licensing in the simplest way possible.
Do you need to worry about SQL Express, Web or Developer edition?
No not really, we are only exploring production workloads, and none of the editions above are used in true production workloads. Besides they are practically free (even web edition is so cheap it’s like it’s free).
What are the other options?
Standard Edition and Enterprise Edition and Big Data Node (new for SQL 2019).
How is licensing done?
Per Core is one way you can license and CAL+ Server is the other method.
So which one should I choose?
Almost everyone uses per core license because CAL + server requires that each and every user is licensed and it’s almost impossible to predict the actual number of users and therefore remain complaint. Also there is a limit of 20 cores for CAL+ server and an older license doesn’t automatically grant you access to a newer version running a different Server license.
A machine connected to the server and performing an automated task e.g. order processing, a user connected to a website which in turn connects to the server is also a user that needs to be licensed.
What’s the minimum number of license I should buy with per core?
There is a four core minimum, which is easy enough to achieve these days.
What is software assurance?
You can think of it like extended warranty but unlike the warranties for your car etc. this one is very useful and you should purchase it.
Why should I purchase it?
If nothing else it allows you to upgrade to newer versions , pay zero license fees for your secondary DR server, comes with PowerBI Report Server free and allows you to move virtual machines across hardware using the same license as long as the hardware configuration ( read CPU counts) are the same. By the way did I mentioned unlimited virtual machines if all physical cores are licensed.
Fine so I will purchase per core with software Assurance, but should I go for Enterprise or Standard edition?
That depends on the kind of features you’re looking to utilize and the hardware configuration you want to run the Database engine on. E.g. standard edition support only 128GB of RAM (which could cause problems when using in memory OLTP). The main constraint will be in terms of hardware than actual features.
Ok so its enterprise edition Core based with SA, what next?
Decide if you’re going for big data clusters.
I am not going to be using Big Data clusters.
Step 1 Count the number of physical core on the server. And divide by 2 and then round up e.g. 4 cores would require 4 licenses (so buy 2 packs of 2 cores each), what if I have 32 cores then by 32 licenses (16packs of 2 cores each). PER CORE
What if I use virtual machines or containers?
A virtual machine or container are treated as the same thing and each of them will be treated like a standalone server and the cores for each VM / Container need to be licensed.
You have Software Assurance and each physical core of the server has been licensed in which case you can run unlimited number of VMs.
I would also like to have an Availability Group replica, do I pay extra even for my backup servers?
With software assurance, in SQL 2017 you get one free licenses for a secondary replica as long as the secondary replica is read only. But in SQL 2019 you get
- 1 free license for a secondary replica for high Availability ( one synchronous replica)
- 1 free license for a secondary replica for disaster recovery ( one asynchronous replica)
1 free license for a secondary replica hosted in Azure.
I changed my mind I also want Big Data Clusters, now what?
The calculations done so far still apply. But with software assurance you can have up to 8 times the number of core licenses for free as Big Data node license. In other words finish your SQL Server license calculation then multiple that by 8 and you get the number of free Big Data licenses you’re allowed with SA. Anything more than that and you need to purchase 1 Big Data Node license per core.
I am planning to upgrade my existing machine how do I reduce cost?
See if you can leverage Software assurance, performance tune the database to reduce the number of CPUs required, consider Azure , modern CPUs and SQL optimization are designed to be faster/reduce CPU utilization test to see if you still need the same number of CPUs. Virtualize. Call an expert.
What is BIG DATA?