Today Microsoft announced some MAJOR changes to the SQL Server 2016 product. As of SQL Server 2016 SP1, which ships today, from a programmability perspective there is no difference between the editions anymore. All programmability features will be available in all editions from LocalDB to Enterprise edition (there’s a couple of exceptions for various reasons which I’ve tried to notate below).
This includes features such as table partitioning, Hekaton, ColumnStore, distributed partitioned views, Change Data Capture, Change Tracking, etc. will work everywhere. Basically the goal of this change was to make it so that you can deploy your database via a deployment script on any edition of SQL Server and it would just work, no matter if you are deploying on Express or Enterprise edition.
There’s some realistic exceptions to this. Chance Data Capture won’t work in Express Edition or LocalDB for example due to the fact that these editions don’t include the SQL Server Agent.
This is a huge improvement for software vendors as they can now use all the features of SQL Server 2016 SP1 and above without needing to require that their customers buy Enterprise Edition.
You may be asking yourself why would I buy Enterprise Edition after this announcement? The reason to buy Enterprise Edition hasn’t really changed. Most people didn’t buy Enterprise Edition to get any of these features. Customers typically buy Enterprise Edition to get access to more than 16 cores and to more than 128 Gigs of RAM. This will still be the case moving forward. If you need to run SQL Server on massive hardware at massive scale, if you need scale out HA using Always On Availability Groups, or Virtualization installation rights (also known as host based licensing), then you will still need to purchase SQL Server Enterprise Edition.
The next question is “why is Microsoft doing this”? The reason is that Microsoft wants to make life simpler for people that develop software. They want to make it so that ISVs can install their software using a single codebase. They can start their customers on Express Edition, and as the customer grows they simply upgrade their instance to Standard Edition, then later to Enterprise Edition without having to have the customer make ANY changes to the application database. Just buy the new SQL Server license and to a SKU upgrade.
Personally I don’t see this taking any Enterprise Edition license sales away from Microsoft (remember that Microsoft is in business to sell software). The primary reasons for buying Enterprise Edition are still there. There’s probably a couple of people that won’t need to buy Enterprise Edition, which is fine. Now they’ll be happier customers because they only need to buy the right sized license for their workload.
All this will be available in SQL Server 2016 SP1 as well as CTP1 of SQL Server v.Next (it doesn’t have a name yet) which also ships today.
Why Much RAM?
When it comes to In Memory OLTP (Hekaton) and ColumnStore there’s probably some questions about how much memory you can use for editions other than Enterprise Edition. The rule will be that Hekaton and ColumnStore will each be allowed to use 25% of the memory cap, and this memory will be outside of the memory cap. So if you are using SQL Server Express edition which has a 1 Gig cap for SQL Server pool memory today, you’ll be able to use an additional 256 Megs of RAM for Hekaton and an additional 256 Megs of RAM for ColumnStore. For Standard Edition you can use 128 Gigs of RAM for pools and an additional 32 Gigs of RAM for Hekaton and an additional 32 Gigs of RAM for ColumnStore. When using these features this effectively gives you a 50% increase in the amount of RAM you can use with these down-level editions.
With PolyBase there’s an additional note. If you need scale out of PolyBase where you scale the PolyBase configuration out to a scale out farm the head node of the farm needs to be Enterprise Edition, however the worker nodes of the PolyBase farm can be standard edition. This is a massive cost savings for those using PolyBase for huge amounts of data processing. If you don’t need the scale out feature of PolyBase and just need normal PolyBase support within SQL Server that will be available in all editions other than LocalDB.
Just wow, I can’t imagine the work that went into getting this change in place. And I’m not talking about the technical work to get this far, but the work of getting all the various people in management to approve such a radical change of taking what we have traditionally called “Enterprise Edition” features and moving them into not just Standard Edition, but into every edition of SQL Server 2016 SP1. This is just huge.
Now there’s a few things which aren’t quite done yet because they’re going to take some more work, so we’ll hopefully see these changes rolling into SQL Server 2016 in later CUs or SPs.
In the meantime, enjoy the new features once you patch your SQL Server 2016 servers to SP1.
If you are running an older version of SQL Server don’t look for a new service pack that’ll back port these features to your older version. The only way that you’re getting that to happen is with an upgrade to SQL Server 2016. If you are looking for a consulting partner to help you with those upgrades, might I recommend Denny Cherry & Associates Consulting. We are available to assist you with those projects right away.