다음을 통해 공유


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

https://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

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

 

SQL Server 2012 Licensing (Resources Pane)

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

Comments

  • Anonymous
    June 23, 2012
    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

  • Anonymous
    September 11, 2012
    The comment has been removed

  • Anonymous
    October 20, 2013
    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.