SQL Server 2012 License Core Limitaion


Well, I wondered how long it would take before I got a case related the 2012 licensing change, looks like today was the day.  I will admit, it is confusing and at the end of the day it is usually not the fault of the DBA that you ended up with a 20 core license on your 64+ core server.  But, no doubt you will probably get the blame, now you can be a hero and fix it with little down time.  Once you have the correct license key, also known throughout all of our documentation as the PID (nothing like reusing acronyms) or  the Product Key.  You will see the PID reference in the SQL Server 2012 command line install documentation. 

 How do you know you are not taking advantage of all of your cores?  Run msinfo32 from a command prompt and verify what your system does have. You will find the count of Physical Processors, Physical Cores, and Logical cores.  Just for the record, SQL does know the difference between a hyper-threaded core and a standard physical core.  The 20 core limit is in physical cores, not hyper-threaded cores. 

 The following query will tell you how many schedulers you have online.  If you see 20 or 40 Visible Online  depending on your HT setting, and many more Visible Offline, you probably have an EE Core edition license limiting your cores, provided no one has messed with your CPU affinity. But why would anyone ever do that? 

            select * from sys.dm_os_schedulers

Additionally, you can look in the SQL Server error log to determine what SQL found on startup; truthfully I would go here first. (To be clear, this is what you want to see in th eerror log, the limiting license will show using 20 or 40.)

SQL Server detected 8 sockets with 10 cores per socket and 20 logical processors per socket, 160 total logical processors; using 160 logical processors based on SQL Server licensing. This is an informational message; no user action is required. 

 

Here is how to fix it once you get the correct license key.

Command Line

Setup.exe /q /ACTION=editionupgrade /INSTANCENAME=MSSQLSERVER /PID=<PID key for new edition>" /IACCEPTSQLSERVERLICENSETERMS

 

Install SQL Server 2012 from the Command Prompt

http://msdn.microsoft.com/en-us/library/ms144259.aspx

Or

 Use the Setup GUI;

  1. Launch the setup.exe from your setup media or network location.
  2. Select Maintenance on the left pane of the setup dialog.
  3. Select Edition Upgrade on the right pane.
  4. After the standard pre-req check you will end up at the Product Key Page, and simply enter your new product key.

  

If you would like to know more, Juergen Thomas has a very in depth blog covering all of the ins and outs of this.  If you have the time I highly encourage you to read it.

 

SQL Server 2012 Enterprise Editions

http://blogs.msdn.com/b/saponsqlserver/archive/2012/06/15/sql-server-2012-enterprise-editions.aspx

 

SQL Server 2012 Licensing (Resources Pane)

http://www.microsoft.com/sqlserver/en/us/get-sql-server/licensing.aspx

 

 

 

 

 

Comments (3)

  1. Papy Normand says:

    Short, clear and very valuable article which induces me a ( surely stupid ) question  : why Microsoft has produced for SQL Server Entreprise Edition a licensing explanation in the license which is so confusing ? Thanks to your article ( i am not forgetting this from Juerguen Thomas ) : you , both , you have succeeded to make understandable the "official" licensing document. But why to do simple when it is so easy to make inextricate… It is a pity for Microsoft

  2. Paul Rowe says:

    MS has a corporate culture problem with ambiguity.  Their names and prose are all such that they can be interpreted correctly, but they also usually have one or more incorrect interpretations possible.  They do not take care to use language in such a way that they WILL be interpreted correctly.

    This typically comes from allowing techs to write without literary editors.  A tech already knows "the answer" and so will launch into providing descriptive details that are accurate, but seldom precise nor dis-ambiguous.

    Hence, in their chart for Standard 2008 SQL licensing:  "$1,793 per Core, or $898 per Server*"

    and at the bottom of the chart "* Requires CALs, which are sold separately"

    You might guess what they mean, but when it comes to license compliance, it is important not to guess.  What we have is C or S and L, but no indication of grouping, so we don't know if it is C or (S andL) or if it means (C or S) and L.

    Actually it appears to me someone (marketing?  legal?) went to some trouble to ambiguate a chart that previously could only be interpreted one way.  There was a clear graphic chart.  Then a redundant attempt to specify the options for which CALs are required went awry.  It was probably a hasty attempt to cover a perceived liability, probably by a legal aide.

    As I say, this is throughout the whole MS culture.

    Lord, please give us qualified computer scientists who passed all the predicate logic pre-requisites.  Hopefully we can survive this generation in which we were forced to use on-job trainees and "wizards" of all sorts, who possess more encyclopedic and procedural cookbook knowledge than in-depth principled understanding.

    Meantime, our planetary commerce is at the mercy of the ability of skilled techs to implement PCI standards when they couldn't construct a logical proof of inaccessibility by unauthorized parties to save their lives, and wouldn't even consider such a thing worthwhile.  After all, they know the command line commands to set a firewall rule, right?  What else is there?

    down soapbox.

  3. K Blum says:

    Just wanted to let you know – this is a very useful article. Was able to figure out that our servers are indeed taking advantage of the new licenses we purchased, and all cores are in use. Now back to figuring out what, with new servers, more cores, and more memory, processes are taking 2-3 times longer to run.

    Sigh.

Skip to main content