You are a database professional considering or implementing a move to SQL Server 2012 from your current database configuration. You've heard horror stories about the SQL Server 2012 licensing model - double the cost, double the complexity. You need to find the best-value to convince your management that the move to SQL Server 2012 will be worth the money. But how do you explain the licensing model to others in a clear, easy-to-understand way? In this tip I intend to explain the SQL Server 2012 licensing consideration by consideration, briefly and without ambiguity (if I actually achieve this aim, please leave comments at the end of this tip).
With the introduction of SQL Server 2012, Microsoft has overhauled their existing per-processor licensing model to recognize that many customers are now using multi-core servers in both physical and virtual configurations. Unfortunately they haven't been very clear about the licensing differences, with pages upon pages of marketing bumpf aimed at purchasers and not professionals. Awash with buzzwords and over-hyped fad terms (you say 'cloud', I say 'someone else's server') the overall effect is to confuse rather than enlighten. Consider this extract from their main page on SQL Server 2012 licensing :
'SQL Server 2012 is a significant product release, providing Mission Critical Confidence with greater uptime, blazing-fast performance and enhanced security features for mission critical workloads; Breakthrough Insight with managed self-service data exploration and stunning interactive data visualization capabilities; and Cloud On Your Terms by enabling the creation and extension of solutions across on-premises and public cloud. SQL Server 2012 is a Cloud Ready Information Platform.'
In the sections below, I will start with models of delivering licenses and move through the various considerations, such as support model, license type, virtualization, high-availability solutions, licensing for previous versions, and mention some of the rules that apply in different circumstances. Links are provided at the end of the tip for further reading.
SQL Server Licensing Delivery Models
This section will deal with how licensing is delivered. This can be broadly broken down into three sections - Volume Licensing, Retail Licensing, and SPLA (Service Provider License Agreement) or ISVR (Independent Software Vendor Royalty) licensing.
Volume Licensing is aimed at business, from small companies to large enterprises. With volume licensing, the company pays only for the software license, rather than the retail box set with CDs/downloads, manuals, packaging and the like. Volume licensing also goes hand-in-hand with Software Assurance (SA), an additional Microsoft product that applies to volume licenses for many different products and that allows different levels of support depending on the level purchased. For example, SA can ensure you are no longer paying $500 per Microsoft support call; that training and development needs are subsidized or provided inclusively; that upgrades and patches remain available and support is available for installation. Volume licensing is ideal when considering larger infrastructures, with more than a trivial number of servers.
Retail Licensing, on the other hand, is fairly straightforward. Retail licensing is also called FPP (Full-Packaged Product) licensing and is normally sold through resellers. It's important to note that there are restrictions on retail licensing - only the Business Intelligence, Standard and Developer Editions of SQL Server 2012 are available through this model. Software Assurance contracts are not available with retail licensing. Since Volume Licensing is the most common model, the remainder of this article will focus on this channel.
(SQL Server 2012 Standard, Retail Edition)
SPLA and ISVR licensing is licensing offered through selected third-parties in collaboration with Microsoft. Specifications and pricing are normally handled by the third-party. Note that only Enterprise Edition, Business Intelligence Edition, Standard Edition and Web Edition are covered under this model.
SQL Server Volume Licensing
Volume Licensing can be further split down into three main types: Open (Value), Select/Select Plus and a group that includes EA (Enterprise Agreement), EAS (Enterprise Subscription Agreement) and EAP (Enrollment for Application Platform). The Open Value license is designed for small-to-medium organizations that have five or more desktop PCs. The agreement is designed to lower up-front costs for software and lasts for two years. The minimum license spend is for five licenses, but the program follows a pay-as-you-go model with the option to add or remove them at any time.
The Select and Select Plus programs are designed for midsize organizations with a distributed infrastructure. They support affiliate licensing and include Software Assurance. They have one differing feature - the Select license expires after three years, but the Select Plus license has no expiry date, allowing the organization to benefit from fixed pricing and favorable contractual terms beyond the initial contractual period. In all other feature areas, Select and Select Plus are identical.
The final group includes Software Assurance as standard. Whereas the Open and Select/Select Plus programs are transactional programs, in the sense that the service is pay-as-you-go with a service contract that doesn't significantly differ from other utility providers, the EA/EAS/EAP licensing model is for midsize to large or enterprise-level organizations. Features include volume pricing - significantly lower than for other agreements - inclusive SA, cloud service support, license management assistance, lower up-front costs and flexible subscriptions.
EA is the standard agreement where licensing needs are driven by the organization and can be thought of as a one-size-fits-all solution. EAS, in contrast, has the advantages of SA, but more flexible licensing (add/remove licenses as needed) and a fixed three-year subscription term, at the end of which the license must be renewed. EAP forms one vector ('enrollment') for Volume Licensing under the EA/EAS/EAP model and for SQL Server only the EAP applies - 'Enrolment for Application Platform'. Other vectors exist, such as the Enrollment for Core Infrastructure and Enterprise Enrollment, which both have more of an infrastructural, cross-product focus, but they either do not apply to SQL Server, or SQL Server forms a part of these which is not relevant for SQL Server-only licensing.
SQL Server Editions
The type of licensing you will purchase will be dependent on the edition of SQL Server which you purchase, which will be dependent on the features you expect from SQL Server. SQL Server 2012 comes in the following editions:
Business Intelligence Edition
Parallel Data Warehouse (PDW) Edition
Parallel Data Warehouse for Developers Edition
Each edition has limitations on the licensing models that can be used to purchase it. Please see my interpretation below, illustrating which licensing models can be used with which editions. (The Express and Compact Editions are free, and do not require licenses). Microsoft also provides a table with this information in the document entitled 'SQL Server 2012 Licensing Reference Guide', which is linked to at the end of this tip. Follow the arrows in the diagram below from your desired edition of SQL Server (or from your current licensing model) to find which editions (or licensing models) are suitable for you:
Each edition of SQL Server differs in features. For example, Developer Edition has all the features of Enterprise Edition, but cannot be used in a commercial environment. Standard Edition does not include features such as table partitioning, online index rebuilds or backup compression. Express Edition will handle databases up to 10GB in size only. Since the focus of this discussion is on licensing models rather than a blow-by-blow account of feature differences between editions, please see the More Links section for information on the different features of SQL Server and how they compare in order to make the best choice of edition for your organization's needs. The document 'What's New in SQL Server 2012' has a good summary of new features and their availability between versions, while those of you familiar with these restrictions in 2008 R2 and below will note that most restrictions still apply. See below for Microsoft's one-page summary of the feature sets that come with Enterprise, Business Intelligence and Standard Editions (note this is not a complete list):
(From Microsoft Corporation, http://www.microsoft.com/en-us/sqlserver/editions.aspx)
SQL Server Licensing - Server and CAL vs. Core-Based
Once the decision on the licensing vector is made, the DBA or organization must decide whether to license under the Server & CAL model, or under the Core-Based Licensing model. Server & CAL has been around for years, and simply refers to the model where one license applies for the server on which SQL Server is installed (note that multiple instances are allowed) and one CAL applies for the user or application service accessing the licensed SQL Server. One CAL is required for every user or application service regularly connecting to SQL Server. For example, if your organization employs 100 people, 20 of whom work in the Finance department which has two SQL Server installations on two separate servers, 2 server licenses and 20 CALs would be required. These are priced separately and the pricing for these will depend on your licensing model (whether you license through EA, EAS, EAP or third-party). Server & CAL licensing is only suitable when purchasing Business Intelligence or Standard Editions. Enterprise and Parallel Data Warehouse Editions MUST be licensed through the per-core model.
The Core-based Licensing model is new to SQL Server 2012 and replaces the Per-Processor Licensing that most DBAs are familiar with. Starting with 2012, Microsoft recognized the shift onto core-based computing, where two or more cores are used for parallelism and better efficiency on production IT systems. Microsoft decided to capitalize on this and protect the licensing fees which would arguably suffer as focus shifted from increasing the number of processors to increasing the number of cores. The new core-based system means each core used in a SQL Server installation must be licensed separately (with some exceptions, see below).
These licenses are sold in 'packs' of two and one pack of two is roughly equivalent in price to the older per-processor license. Thus, although more licenses are required (and other factors such as price adjustment and inflation have affected the 2012 price), there may not be a significant difference to the overall price when relicensing for 2012, depending on your circumstances. Note that hyper threading is ignored for core licensing purposes when licensing physical servers. The same does NOT apply to VMs - see the section below! However - something called 'Core Factor' comes into play here. Core factor refers to the factor one must multiply by when determining the licenses required, depending on the type of processor one has. AMD processors are licensed differently from Intel ones. And non-Intel, non-AMD processors are licensed differently still. Here are the rules:
AMD Processors 31XX, 41XX, 42XX, 61XX, 62XX Series with 6+ cores
Single Core Processors
All other processors
Two processors, two cores per processor, core factor 2, Intel
2 x 2 x 2 = 8 licenses
One processor, four cores, Intel
1 x 4 x 1 = 4 licenses
Two processors, AMD 61XX model, eight cores
2 x 8 x 0.75 = 12 licenses
Note that when ordering the licenses, you must divide the number of licenses by two to determine how many 'packs' to order. Don't order double the amount you need by accident!
As you can see, this isn't an entirely fair model. A four-core Intel processor requires 16 licenses even though performance-wise it will be thoroughly outstripped by two processors with two cores each, due to increased parallelism. For this reason, in a single-core architecture, you may wish to make sacrifices with e.g. the edition you run (Standard Edition under Server/CAL may be cheaper) or upgrade your hardware to save money on the licensing costs.
However, things unfortunately get a little more complicated with virtual environments.
Microsoft stipulate that for those customers installing SQL Server in virtual environments, a core license is required for every virtual core in the virtual environment that is supported by one hardware thread (this means physical processor core OR hyperthread. Be very wary when using hyperthreading on physical machines that support VMs, as licensing costs can double despite having no additional physical computing power!). This means that if there exists a VM with multiple virtual cores, one license is required for each virtual core even if supported by fewer hardware threads than cores. However, if multiple hardware threads are supporting fewer cores, one license is required for each hardware thread. Core factoring does not apply for VMs. There is a minimum four licenses required per VM regardless of VM cores.
1) Physical machine w/ 1 proc, 4 cores per proc, 2 x VM with 4 cores each:
8 VM cores x 1 license per core = 8 licenses required.
2) Physical machine w/ 2 procs, 8 cores per proc, 4 x VM with 4 cores each:
16 VM cores x 1 license per core = 16 licenses required.
3) Physical machine w/ 2 procs, 4 cores per proc, 2 x hyperthreaded, 1 x VM with 4 cores:
4 VM cores BUT supported by 2 x 4 cores physical x 2 threads, so 16 licenses required, no core factoring.
(From 'SQL Server 2012 Licensing Reference Guide', Microsoft Corporation)
For the reason that virtualization may render the total price unfeasible, you may wish to license your virtual machines under the Server & CAL model instead. In this instance, just one server license per VM is required (CALs still required based on your user/application process base). In example number 3 above, the VM is under provisioned against the physical machine so you may wish to add more VMs so that VM core licensing is appropriate (to get better value for or even save money), or turn off hyperthreading, or go for maximum virtualization (see below for more details) to remove the need to license per core on each VM.
Note that physical licensing wins out over virtual licensing. Microsoft call this 'Licensing for Maximum Virtualization' and enables you to disregard your VM cores, so should you decide to have more VM cores than physical ones you will not necessarily be penalized. So if you decide to physically license your cores even though you're running VMs, you will be able to run SQL Server in VMs up to a maximum number equal to the number of physical core licenses you hold. For example, if you have a large server with 8 processors, 6 cores per processor, you will require 48 core licenses. But this will allow you to run up to 48 VMs with an unlimited number of cores per VM. If you wanted dual-core VMs, under the virtualization core licensing model you would be required to purchase 96 licenses, but by purchasing core licenses for the physical processors you could be required to purchase half that amount. If SA is purchased on Enterprise Edition and all physical core licenses are purchased, the one-license-per-VM rule is waived and customers are allowed to use an unlimited number of instances on an unlimited number of VMs on that server.
Also note that for Parallel Data Warehouse Edition, these rules are slightly different. All physical cores MUST be licensed regardless of VMs. PDW is used primarily in multi-stack servers with multiple nodes, called 'compute nodes', similar to clustering. Each cluster node is licensed as if it were a separate physical server.
SQL Server Mirroring and HA Licensing
The rules change slightly when considering mirroring and High-Availability, but the rules for this are quite simple.
ACTIVE -> PASSIVE configurations, such as mirrored configurations or active-passive cluster/failover configurations, do not require licenses on the mirror. Note this doesn't apply if you are using a combination of mirrored and active databases on your servers in the same instance.
ACTIVE -> ACTIVE configurations, such as clusters or HA Groups, do need licensing for every active node within the group, following the same licensing rules as described earlier in this article.
Only one passive node is waived for licensing purposes per active node. If multiple passive nodes are used, licensing on all but one of these passive nodes is required. When using active-passive configurations, the number of licenses bought must be suitable for the server with the higher number of processors/cores, as in the event of failover the passive node must be adequately licensed.
With the License Mobility benefit available under Software Assurance, customers can reassign licenses between servers as often as necessary within a server farm. This may allow customers to be more flexible with their server and infrastructure configurations.
Note that licensing is limited to server deployments with 20 cores in total or less per server, physical or otherwise - if any additional core licenses are required for your freshly-minted IBM behemoth, you will need to contact Microsoft directly for licensing assistance. If using Standard Edition or Business Intelligence edition, this limit is 16 cores per server.
Licensing for SQL Server 2008 R2 and Below
As this author painfully remembers, most resellers and indeed Microsoft will no longer allow the purchase of volume licenses for SQL Server products below 2012 Edition. This means that even if your organization is intent on remaining on a pre-2012 edition of SQL Server, 2012 licensing rules including the core license requirements still apply. The exception to this rule is if SQL Server 2012 Business Intelligence Edition is purchased, which does NOT allow downgrades to previous versions of SQL Server since the BI product equivalent is Standard Edition and did not exist prior to 2012.
I intended this brief article to be a summary and guide to choosing the correct licensing model for readers who are delving into the subject. However, licensing is a complex issue and I appreciate that for many, my summary may muddy the waters rather than clear them. If you have any questions about licensing, I would first recommend reading the following document from Microsoft:
I don't think your Intel example is correct. It is a 4 core processor, not a single core processor. "One processor, four cores, Intel" Which looks like 1x4x1 = 4. Microsoft's example is 2 Intel Xeon 6-core processors and the answer is 12.
Wednesday, April 24, 2013 - 10:06:07 AM - Derek Colley
@CJ Morgan - You're right, Standard Edition DOES support backup compression. I've just tested it on a SE version of 2012 and it completed successfully. This fact is going to upset our architect considerably.
Your comment on SQL 2008 R2 SE doesn't support backup compression is incorrect. Whilst backup compression is an Enterprise feature for SQL 2008, it's readily available in SQL 2008 R2 SE. Our organization has been using backup compression on SQL 2008 R2 since day 1.
3) Physical machine w/ 2 procs, 4 cores per proc, 2 x hyperthreaded, 1 x VM with 4 cores:
4 VM cores BUT supported by 2 x 4 cores physical x 2 threads, so 16 licenses required, no core factoring.
This doesn't seem correct?
Assuming you are running SQL Server in the VM and you are licencing Per Core then you only need to licence "per virtual core". This could be a thread or a core but is shown to the VM as a core.
Therefore you would only need 4 licences not 16. There is no requirement to licence the underlying hardware if you don't use it in the VM that is running SQL Server (apart from the 4 core minimum per VM requirement).
After reading the article and comments, I am still confused what I need. We're a small machine shop, looking at an ERP app that needs SQL. I am told Standard is sufficient. We'll never grow above 1 server and 5 users. What is my best SQL 2012 option (least expensive)? Virtualization is not in the cards....I don't know what it would do for us.
Tuesday, November 05, 2013 - 1:14:12 PM - Greg Robidoux
@Jeff, based on what you mentioned you could use either the Standard edition or the Express edition (free). The other editions wouldn't make sense.
The Express edition doesn't have all of the features of Standard, but if you are just using the database engine you might be fine. There are some limitations as far as database size (10GB) and CPUs (1 socket or 4 cores) and SQL Memory (1GB).