我如何知道SQL Server实际使用了多少个Cores?


17

我有两台运行SQL Server的服务器。

  • 服务器1:SQL Server 2008 R2 Express(4核)
  • 服务器2:SQL Server 2012 Developer Edition(8核)

据我所知,SQL Server 2008 R2 Express应该仅使用一个内核。

SQL Server 2012 Developer版本应使用所有8个核心。

但是,如果我在SQL Server 2008 R2 Express上的SQL查询中运行以下命令,它将显示4个核心。

select scheduler_id, cpu_id, status, is_online 
from sys.dm_os_schedulers 
where status = 'VISIBLE ONLINE'

我是否使用正确的命令来衡量使用情况?

Answers:


7

Express Edition受1个处理器而不是1个内核的限制:

SQL Server支持指定数量的处理器套接字乘以每个套接字中逻辑CPU的数量。例如,出于本表的目的,以下组件被视为单个处理器:每个插槽具有2个逻辑CPU的单核超线程处理器。具有2个逻辑CPU的双核处理器。具有4个逻辑CPU的四核处理器。SQL Server是按处理器 插槽而不是按逻辑CPU许可的。

http://msdn.microsoft.com/zh-CN/library/ms143760(v=sql.105).aspx

是的,可以使用sys.dm_os_schedulers来确保所有4个内核都与调度程序映射。


1

在大于2007的操作系统上使用此命令:

->> WMIC CPU Get DeviceID,NumberOfCores,NumberOfLogicalProcessors

对于物理服务器,DeviceID〜套接字,NumberofCores〜CPU,NumberOfLogicalProcessors〜线程。MS现在使用基于内核的许可证模型。CAL不在范围内。如果需要更多信息,请搜索“ Microsoft SQL Server 2012许可指南”。

要为标准/企业版2包* 4 CPU SQL Server许可收费/收费,下面的示例将是必要的。共有8个内核(CPU)。

DeviceID  NumberOfCores  NumberOfLogicalProcessors
CPU0      4              8
CPU1      4              8

“任务管理器”中的“性能”选项卡或“资源监视器”中的“ CPU”选项卡将显示16个CPU正在运行。逻辑处理器。搜索“ Intel X5550”,这是我正在检查的处理器。英特尔在ark.intel.com网站上提供了所有规范,可以对所需信息进行X-检查。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.