sql server 2012不能全部用到CPU的逻辑核心数的问题

时间:2023-03-08 23:01:13
sql server 2012不能全部用到CPU的逻辑核心数的问题

最近在工作中遇到了,sql server 2012 不能把CPU 的核心全部用到的问题.通过分析工具看到

sql server 2012不能全部用到CPU的逻辑核心数的问题

总共CPU核心有72核,但sql 只能用到40核心,想信也有很多人遇到这问题,那么今天这节就先说说这问题是怎么出现的。

首先  介绍下服务器的环境

Windows 2008 R2 Enterprise Edition(X64) + Microsoft SQL Server 2012 (SP1)Enterprise Edition (64-bit)

CPU 2路 18核 开启超线程后是72核心  如图:

sql server 2012不能全部用到CPU的逻辑核心数的问题  sql server 2012不能全部用到CPU的逻辑核心数的问题

sql server 2012不能全部用到CPU的逻辑核心数的问题

再看sql实例的属性  如图:

sql server 2012不能全部用到CPU的逻辑核心数的问题

sql server 其实已经认出了总的核心数  72

那么sql server 是不是代表就能全部使用上呢,通过系统视图可以看到

sql server 2012不能全部用到CPU的逻辑核心数的问题

sql sever 真正用到的只有40个核心。

那么 我们知道,Process Group这个概念是在Windows  server 2008 (x64)才引入的技术,sql server 2008 R2 及以后的版本,都使用Process Group 的技术,为什么 sql server 2012 Enterprise Edition (64-bit) 的居然还有这问题,

是不是 有点说不过去呢?

是不是 sql 的版本不对,那么我通过 执行 select @@version  查看版本的命令 ,查出版本是

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
    Dec 28 2012 20:23:12 
    Copyright (c) Microsoft Corporation
    Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
是64位 企业版的啊 ! 为什么不行? 经过网上查找发现 ,sql server 2012  企业版的有两种 , 一种就是上面看到的 ,他最多只能认到单组64核心,因为处理器编组的原因,它只用到了其中的一组40核心的,而另一组32核心的,没有办法再用到。
那么最简单的办法就是把现有sql 的版本给升级到 SQL SERVER 2012 ENTERPRISE CORE  Edition
打开 sqlserver 安装中心  如图:  
   sql server 2012不能全部用到CPU的逻辑核心数的问题
   sql server 2012不能全部用到CPU的逻辑核心数的问题
维护 sql server 2012不能全部用到CPU的逻辑核心数的问题-版本升级
   sql server 2012不能全部用到CPU的逻辑核心数的问题
  输入 core  版本的序列号,然后就 下一步  下一步  下一步  一直点下去 ,等它升级完了。
  sql server 2012不能全部用到CPU的逻辑核心数的问题
 sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题   sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题sql server 2012不能全部用到CPU的逻辑核心数的问题
接下来 ,我们再去看sql server  这时是不是真真正正的,全部都用上了 72个核心。

sql server 2012不能全部用到CPU的逻辑核心数的问题

这时,我们再用 SELECT @@version  看下sql 的版本信息

Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
    Dec 28 2012 20:23:12 
    Copyright (c) Microsoft Corporation
    Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
我们看到   Core-based Licensing  的标识了 !!