Microsoft Ups the Ante For Licensing SQL Server
A couple of newsletters ago, I wrote nice things about the new features for Standard Edition in SQL Server 2014. In this issue I am writing mostly about the new licensing policy in SQL 2014. I don’t like it at all and I am betting you won’t like it either. However, you should know about it if you are thinking of upgrading.
SQL Server Licensing Models
As you probably know, there are two licensing models for SQL Server. There is per CAL (Client Access Licensing) and there is Core licensing.
We won’t spend a lot of time discussing per CAL licensing because it is rather straightforward. If you have a small number of users accessing the SQL Server it is often less expensive to license each user who will access the SQL Server than to license the server itself. It takes only simple arithmetic to use the chart below to decide which licensing model works best for you. The only other things you need to know about per CAL licensing are:
- It is the only option you have for licensing the Business Intelligence (BI) edition of SQL Server
- It cannot be used for licensing Enterprise Edition.
Core licensing used for web-facing databases or other databases that will host an unknown number of users. Instead of licensing users, you license the server itself according to the number of CPU cores it has.
Due to the availability of inexpensive multi-core processors, SQL 2012 brought us licensing per each CPU core rather than licensing per each physical CPU. That dramatically increased the number of licenses required for the typical SQL Server instance. It is true that the new core licenses were much less expensive than the old licenses for each physical CPU. However, the cost of licensing a typical SQL instance increased substantially when it was upgraded to SQL 2012.
The fact that you had to license at least 4 cores added something more to the cost for some instances. To reduce licensing cost you had the option not to use some of your processor cores for SQL Server and thus not need to license them.
In SQL 2014, Microsoft has turned up the heat significantly. You still have to license a minimum of 4 cores, but now you must also license all cores on the hardware whether they are being used for SQL Server or not. Suddenly, all your powerful hardware becomes too expensive to license.
Licensing Failover Servers
In the past, SQL Server instances used as failover servers for log shipping or mirroring did not require a license if they were not used as the production server for longer than 28 days after failover. In SQL Server 2014 you must license those server or pay for a subscription to Software Assurance. Software Assurance is a costly and recurring expense but it may less costly than licensing more servers.
Licensing Virtual Servers
These same licensing changes apply to virtual servers as well as physical servers although there are some details you should know about. For example, if you want to move your SQL instance among different virtual servers you must have a subscription to Software Assurance.
Is Microsoft Joking?
Recognizing that their users may want to reduce the number of CPU cores when they upgrade, Microsoft urges users to optimize their databases so that they will run with adequate performance with fewer processors. As someone who has done his share of SQL Server optimization I think that you would have to do an impossible amount of optimizing to make up for the lost processors.
While this bodes well for my business (80% of which is SQL performance tuning), I think that many users will simply not upgrade. Would you?
If a SQL Server SQL2008r2 user is sitting comfortably on 32 processor cores which were essentially free when SQL Server 2008r2 was licensed, how likely do you think it is that the user will pay a six figure price tag to upgrade to SQL Server 2014?
Has Microsoft Gone Crazy?
I have a theory that Microsoft, like many other software companies right now, is driven blindly by a vision of recurring, predictable revenue rather than having to invent reasons for users to upgrade every two years. They are focused on turning a shrink-wrap product into an ongoing service. That means herding users to the Cloud, and in the Microsoft world that means SQL Azure.
The increasing cost of owning and maintaining your own SQL instances makes SQL Azure look better and better each time Microsoft upgrades its product and increases licensing cost.
I think Microsoft is taking a big risk by alienating so many of its users so often. I am hearing a lot of talk about abandoning SQL Server for PostgreSQL from those who used to be raving SQL Server fans.
Because of the cost of re-tooling and converting existing installations, I think existing installations will likely remain with SQL Server. But certainly, when faced by the enormous cost of buying SQL Server, those contemplating new development will take a closer look at the alternatives available.
Non-critical workloads with minimal IT resources
As long as I am complaining about Microsoft, here is something else I don’t like. Microsoft has come up with a new official definition for SQL Server Standard Edition.Here is what they say:
SQL Server Standard Edition provides core data management and business intelligence capabilities for non-critical workloads with minimal IT resources.
How do you long-time Standard Edition users feel about Microsoft’s trivialization of the database system they sold you? Do you consider your workload non-critical or your IT resources minimal?
Microsoft is making a clear division between databases that need high availability, high performance, encryption, etc, and those that (in their opinion) don’t. In fact, in SQL 2014 they are taking away one of the few high-availability features and one which has been a part of Standard Edition for ten years.
Mirroring no longer exists in Standard Edition 2014. That’s right. If you are currently using mirroring on a Standard Edition of SQL Server, you are going to lose it if you upgrade. Log shipping will be your only option for high availability.
Don’t Kill the Messenger
I just report this stuff.