MSSQL 2012 CPU 内核的使用情况?

Yor*_*iev 2 performance sql-server

我正在决定我将使用哪些处理器,我需要有关“MSSQL 2012 与 CPU 内核实际如何工作?”的信息。

基本上我的问题如下:

  • 从多连接查询中提取数十亿行的 1 个查询是从单个核心执行,还是从可用核心执行?

Rya*_*ies 6

我建议您阅读Bolton、Langford、Berry 等人撰写的关于 SQL Server - Professional SQL Server 2012 Internals and Troubleshooting的一本书,这是一本很好的书。

首先,我想告诉您,在设计 SQL 2012 服务器时,您不希望疯狂。Microsoft 已将其许可模式更改为 SQL Server 2012 上的每核,这对于 AMD 处理器来说是非常不利的,AMD 处理器目前倾向于使用更多数量相对较弱的内核,而 Intel 处理器通常具有较少的物理内核,但每个内核的性能要好得多。

您可以为拥有更多 AMD 内核的服务器花费两倍的许可成本,或者在内核更少的英特尔服务器上花费更多,从而节省十万美元的许可费用并最终获得性能更好的服务器。

像您描述的那样具有多个连接的大型查询将生成复杂的执行计划,由查询优化过程分解为任务,并并行执行。所以是的,这种查询肯定会利用多个处理器/内核提供的并行性。

编辑:当前一代英特尔处理器在 SQL 2012 工作负载上的表现比 AMD 处理器要好。查看 tpc.org 上的 TPC-E 基准测试。AMD 处理器目前根本无法与 Intel 处理器的单线程性能匹敌。AMD 处理器通常具有更多内核,但这并不能弥补差距。此外,无论制造商如何,SQL Server 上的许多内核都显示收益递减。

另外,请在此处阅读我关于此主题的博客文章。

  • 除此之外,除非你有大量的内存并且只做 OLAP,否则你也会受到 IO 的很多限制;) (2认同)