Selecting a Processor for SQL Server 2014 – Part 1

In these books, you will find useful, hand-picked articles that will help give insight into some of your most vexing performance problems. These articles were written by several of the SQL Server industry’s leading experts, including Paul White, Paul Randal, Jonathan Kehayias, Erin Stellato, Glenn Berry, Aaron Bertrand, and Joe Sack.

My assumption is that SQL Server 2014 will use the same core-based licensing model that SQL Server 2012 does, since I have not heard any public announcements otherwise. I would not be surprised to see some minor price increases in the license cost per core, but I would be very surprised to see any major changes to how core-based licensing works. I do hope that Microsoft will make some changes to the artificially low hardware license limits for SQL Server Standard Edition.

The difference in SQL Server 2014 licensing costs between a good processor choice and a bad processor choice can more than pay for your hardware and at least a portion of your storage subsystem in many cases, so this is something you need to pay attention to as a database professional. Don't just let "Shon the server guy" pick what processors to buy for your new database server!

Two-Socket Servers

Over the past year, Intel has released the 22nm Intel Xeon E5-2600 v2 Product Family (Ivy Bridge-EP) of processors for two-socket servers. Currently, there are 22 different processors in this family, which seems like an overwhelming number of choices. When you think about how SQL Server 2012/2014 licensing works, and you want the best performance possible for the lowest license cost, you can pretty quickly narrow down that list to just five processors. These are the twelve-core Xeon E5-2697 v2, the ten-core Xeon E5-2690 v2, the eight-core Xeon E5-2667 v2, the six-core Xeon E5-2643 v2, or the four-core Xeon E5-2637 v2. Table 1 shows the relevant specifications for these five processors.

You might be wondering how I can so quickly discard so many of Intel's new Xeon E5-2600 v2 processor models. You need to keep in mind that only physical cores count for licensing purposes (on non-virtualized servers). If there are multiple models from the same product family with the same physical core count, you should prefer the one with the highest base clock speed, turbo clock speed, the highest Intel QPI speed and the largest shared- L3 cache size.

By those criteria, we get the five processor models shown in Table 1. Your choice then comes down to your desired physical core count for each processor, which drives your SQL Server 2014 licensing costs. You might notice that the lower core-count processors tend to have higher base clock speeds than their higher core count brethren, which is actually quite significant for single-threaded processor performance. Another factor to notice is that some of the lower core count models have the same L3 cache size as the next higher core count processor in the table, which gives each physical core a larger portion of the L3 cache to work with (since the L3 cache is shared between all of the cores). Having a larger L3 cache is very helpful for database server performance, since L3 cache is significantly faster than main memory access.

Bearing all of this in mind helps you narrow down your choices even further. You need to consider your workload and your budget as you make your final processor choice. If you want the best single-threaded processor performance (which is very important for OLTP workloads), and the overall magnitude of your workload (in terms of number of concurrent users or batch requests per second) is on the smaller side, you should be focused on the E5-2667 v2, E5-2643 v2 or the E5-2637 v2.

Your final choice might be constrained by your software license budget, since each Enterprise physical core license will cost $6,874.00 (at least with SQL Server 2012 Enterprise Edition pricing). Quite often, financial considerations may guide you to lower core count model. For example, in most situations, I would have no problem with someone picking a six-core E5-2643 v2 instead of an eight-core E5-2667 v2, and saving $27,496.00 in software license costs! That would pay for the server itself, with money left over.

Another strategy might be valid if you were trying to replace an older four-socket server with a two socket server and you were concerned about whether the two socket server could handle the total concurrent workload. In that situation, you might want to choose the twelve-core E5-2697 v2. Another choice could be two new two-socket servers that each had two of the significantly faster six-core E5-2643 v2 processors (assuming you could split your workload between two database servers).

Just for comparison's sake, here are the same specifications for the three best choices of the 19 previous generation 32nm Intel Xeon E5-2600 Product Family (Sandy Bridge-EP) processors, in Table 2.

What you may notice from comparing Table 1 to Table 2 is that you are getting a nice increase in base and turbo clock speeds, along with larger L3 cache sizes for the same cost, when you compare equivalent processor models from both generations (that have the same core counts). On top of that, there are some small architectural improvements between 32nm Sandy Bridge-EP and 22nm Ivy Bridge-EP that give you a 5-10% performance boost in most benchmarks. Once again, this means that you do not want to let "Shon the server guy" pick an older Sandy Bridge-EP processor for your new database server.

In Part Two of this series, I will talk about the upcoming 22nm Intel Xeon E7-4800 v2 Product Family (Ivy Bridge-EX) for four-socket servers that is due to be released during the first quarter of 2014. These will be a huge improvement over the much older 32nm Intel Xeon E7-4800 Product Family (Westmere-EX), which is a long overdue development that will narrow the performance gap between two-socket servers and four-socket servers.

@Yup: The Xeon E5-2650 v2 is an eight-core processor with a significantly lower base and turbo clock speed than the eight-core processor that I recommend (the E5-2667 v2). It also has a smaller L3 cache. It does cost less money for the processor itself, but the money savings are quite small compared to SQL Server 2012 license costs, especially for Enterprise Edition.

To me, saving about $1700 on the cost of a two-socket server is not worth giving up 25-30% of the processor performance.

I also recall that Microsoft's socket-based licensing did not allow you to bypass licensing for sockets that were turned off in the BIOS or otherwise (some people even tried to do this via affinity); you had to physically remove the CPU or else you were responsible for licensing it. Now, you can't do that with a core, but I'm still not sure if simply turning it off in the BIOS makes it immune from the need for a license…

Microsoft confirmed to me on 13/02/2013 that you only need to license the cores that SQL use. I've bought 6-core processors, disabled 2 cores in the BIOS (thanks HP) and bought 4 core licenses (enterprise with SA for maximum virtualisation). If I need more power in the future, I can just buy more licensing and turn cores back on. This is another great benefit over using Oracle – despite the crazy price increase.

I'm currently in discussion with Microsoft around the grey area of 3 cores enabled on a processor. Do we need 4 licenses or can we get away with 3, as it's not mentioned in the core factor multiplier table?

Pete, the last time I talked to Microsoft, they stated explicitly that if the cores are in the machine, they have to be licensed. If your licensing rep tells you otherwise, that's fine, just be sure they will go to bat for you in the event that auditors disagree with their assessment.

Also, I am fairly certain that the "disabled in the BIOS" option would apply to *sockets* being disabled – your 6-core processor is still going to report itself as 6-core, even if you've disabled two of the cores.

And finally, the licensing IIRC is only available in multiples of 4. Not sure why you would ever want to have 3 cores enabled – that's an odd number, both literally and figuratively.

And I'll explicitly clarify that I am not a lawyer nor a licensing expert; you'll want to make sure you are compliant, and triple-check, with the people who will try to prosecute you otherwise.

This wasn't a rep – this was an Application Platform Solution Sales Professional from Microsoft UK at the time. I though it prudent not to name him.
And why wouldn't Microsoft agree to this – it's a great selling point? And who's able to disable cores in their production server just for when the auditors are around?

My 6-core CPU is happily reporting only 4 cores to VMWare. As we have software assurance, hyper threading is turned on for 8 threads available to VMWare.

If I can get approval for 3-cores, then I can have 2 CPUs each with only 3 cores and just license 6 cores – I buy core licenses in packs of 2. With the option to bump up to 12 cores (if I buy the extra licensing) if needed. Nice and future proof. It's a long shot, and they're unlikely to agree, but if you don't ask……..

It is really hard to find out what this version of SQL will cost, if I have a Host with 4X4 CPU (16 Cores) what will SQL 2014 Cost me ? and if I have 10 instances of SQL running on this Host is it the cost X 10 ? or is EE licensed per physical host, not Instance ?

Hi Paul, pricing hasn't been officially announced that I'm aware of, but it should remain roughly or exactly the same as 2012 licensing. So you should be able to get a ballpark using the SQL Server 2012 Licensing Guide or contact your reseller / licensing rep (we cannot really advise you on what licensing you should use/buy).

Paul, to echo Aaron, you simply need to work with a knowledgeable licensing partner on pricing issues… please don't take anything you read in a forum to the bank! No matter how knowledgeable or official-sounding it is. I've seen too many incorrect answers to questions on forums and the licensing discussion is simply too expensive to mes up like that.
I know that's really unsatisfying, but you're talking about something that costs as much as a modest two bedroom house. The person you work with is more important than the company. If they just toss you a price without asking a lot of questions, just run away and don't look back. That partner will fail you big time in the long term.
To answer your immediate question as best as possible, SQL 2014 ought to cost the same as 2012. Forget about licensing per-server – there's only per-core available anymore. Do not budget for SA or without SA until you are quite comfortable with the reasons you might or might not need it. If licensed exactly as described, it wouldn't matter how many instances of SQL you run. The number of OSEs in which you could run SQL would be limited to the number of cores you license (16) or, if you opt for SA, there would be no limit to the number of OSEs that may run SQL on that one 4×4 server. Without SA, you would not be allowed to virtualize your SQL server-hosting OSEs unless you host them only on the one 4×4 server.
These are not even all the caveats, though, which is why you ought to talk to a pro.
If you can work with a worst-case, don't-blame-me-if-it's-wrong baseline, then you can figure $48k / 4 core CPU w/ 3 years SA followed by $15k / 4-core CPU for 3 more years SA after that. It shouldn't cost any more than that for what you describe. Last, while I'm not in love with Microsoft, before you hate on that price, note that it's significantly less than Oracle DB EE!

The license cost for SQL Server 2014 has not been announced, but I am guessing it will be very similar to SQL Server 2012 pricing. If you are not running virtualized, then you can install multiple named instances of SQL Server on the same server, and not pay any extra licensing costs. With virtualization, you do have to pay for extra VM vCPU cores (with a minimum of 4 vCPUs per VM), unless you have enough core licenses for the entire host machine and you have Microsoft Software Assurance (SA).

Good and handful information. What about a Part II with 4/8 sockets now that SQL2014 is already available? We are considering a brand new DELL R920 with 2 x E7-8893 v2 3.4GHz to replace our current DELL R910 with 2 x E7-8837 2.67GHz. Or using something as suggested on the article, a couple of R720 with 2 x E5-2643v2 3.5GHz.

For SQL Server 2012 and newer, Microsoft has a minimum of four core licenses per physical processor or VM. You can buy additional core licenses in packs of two. This means that you can have 4, 6, 8, 10 licenses, etc. Odd numbers are not allowed.

If you have an old dual-core processor, and insist on running SQL Server 2012 or newer on it, you are supposed to have four core licenses for it. If your server lets you disable processor cores, so you have less than four cores per physical processor, you are still supposed to have four core licenses.

The only exception to this is VMs, where you have purchased enough SQL Server physical core licenses to cover the entire host, and you have Microsoft SA. In this case, you can create as many VMs as the OS allows, and have as many virtual cores as you like for SQL Server across all of those VMs.

Of course, I don't work for Microsoft, and I am not a licensing lawyer. If you can get something in writing from someone in authority at Microsoft that gives you different rights or rules than this, then good for you.