SqlServer安装时企业版会有两种选项:Microsoft SQL Server Enterprise (64-bit),Microsoft SQL Server Enterprise: Core-based Licensing (64-bit)。前者为Enterprise
Server+CAL license 模式,最大计算能力限制为20核;后者为Enterprise Per Core license 模式,最大计算能力限制为操作系统最大CPU核数。如果在创建时选错了类型,服务器实际要用到超过20核,可以通过以下方法修改。

  • 找到当时的SQL Server 2014的ISO文件,并挂载到服务器上
  • 用管理员身份进入CMD,并cd到上面的SQL挂载盘的路径
  • 执行以下命令,进行license更改:
Setup.exe /q /ACTION=editionupgrade /INSTANCENAME=MSSQLSERVER /PID="TJYBJ-8YGH6-QK2JJ-M9DFB-D7M9D" /IACCEPTSQLSERVERLICENSETERMS
  • 也可以使用图形界面

SqlServer 突破CPU 20核限制_Server

SqlServer 突破CPU 20核限制_SQL_02

  • 完成之后,执行以下查询语句,检查CPU使用情况,看更改是否生效:
select cpu_id,status,is_online from sys.dm_os_schedulers

 

进一步搜索发现,关于20 cores的限制问题,需要区分CPU是否支持超线程

  • 如果非超线程,SQL Server 检测到 4个插槽,每个插槽有6个核,且有6个逻辑处理器(单线程),则总共为24个逻辑处理器,受限于SQL Server licenseing,只能使用20个逻辑处理器;
  • 如果超线程,SQL Server 检测到 4个插槽,每个插槽有8个核,且有16个逻辑处理器(单线程),则总共为64个逻辑处理器,受限于SQL Server licenseing,只能使用40个逻辑处理器;