在运行SQL Server 2008 R2 Standard时,是否将在i7上使用所有内核?

我有一个英特尔酷睿i7处理器(4核心)的服务器。 如果我在任务pipe理器中查看处理器活动,我看到有8个内核。 我相信这是因为超线程(如果我错了,请纠正我)。

与使用最多8个CPU的SQL Server Enterprise相比,SQL Server 2008 R2 Standard将最多使用4个CPU。

我的问题:SQL Server的标准版本是否会充分利用此服务器上所有可用的CPU? 即它会看到4个或8个CPU?

SQL Server 2008 Standard处理器的限制是每个套接字,而不是每个核心。 有关更多信息,请查看Microsoft.com上的SQL Server 2008页面 。 具体来说就是“ SQL Server 2008 R2版本概述 ”PDF文档。 从文件:

随着硬件创新的不断增加,微软仍然是唯一一家不以多核处理器为核心的主要数据库供应商

是的,SQL Server 2008 Standard将使用全部8个内核。 如果存在这样的CPU,它可以在单路许可证上使用100个内核。

没关系。 如果仅在四个内核上加载负载,则调度程序足够聪明,可以确保每个物理内核的负载位于一个逻辑内核上。 而超线程通常最多可以为您提供额外15%的性能。 加载虚拟内核会盗取与执行单元,I / O带宽,L2caching空间等资源共享该物理内核的其他虚拟内核。 所以他们不会在全速运行。

所以,即使在最糟糕的情况下,也意味着大约15%的CPU不能被SQL服务器本身使用。 但是,当SQL服务器正在做事时,操作系统也是如此 – 处理networking和磁盘中断,pipe理内存等等。 在任何实际情况下,这将占CPU负载的20%左右,并且可以使用其他虚拟内核。 所以你基本上什么都没有。