当向SQL Server添加第二个处理器时,它是否会自动平衡负载?

我们有一个SQL Server 2008 R2(10.5)在一个2.4Ghz处理器的专用盒子,经常在70-80%的CPU运行。 我们将要添加大量的用户到应用程序,因此想要添加第二个处理器(放大)。

SQL Server会自动使用第二个处理器来平衡线程,还是有额外的configuration需要完成? 换句话说,join第二个处理器会把我的CPU使用率降低到每个CPU 35-40%,自动平衡负载?

根据我在这里看到的,它似乎将: http : //msdn.microsoft.com/en-us/library/ms181007.aspx

不过,我已经在其他地方看到,通过将数据库表分配给不同的文件组可以获得CPU性能的提升,但是我不确定我们现在想要得到那么复杂的结果。

您提供的链接是最大并行度。 该function与您所询问的完全不同。

只要操作系统可以看到它,SQL Server就会使用新添加到您的服务器的CPU,并且只要SQL Server中的“Affinity Mask”设置为0。 您需要从查询窗口运行EXEC master.dbo.sp_configure 'affinity mask' ,并查看config_value的结果。 只要它是0,那么SQL将自动使用新的CPU。 但是,在添加新的CPU之前,首先需要查看正在运行的SQL版本。 版本支持的最大CPU数量不同。

下面的链接将概述每个的限制。 如果你不知道你有哪个版本,那么你可以运行SELECT SERVERPROPERTY('Edition')来查找。

SQL Server 2008 R2版本支持的最大处理器数量

CPU性能的提升可以通过在文件组间扩展表来实现,但是这是间接的。

当SQL Server要读取数据时,它会发出一个请求,并让发出请求的线程hibernate,直到I / O硬件满足请求。 如果您的查询是在单独的物理存储上的表中,或者存储在跨同一文件系统中的多个物理驱动器的表上,则SQL Server可以发出多个I / O请求。 这使得I / O更快,这意味着CPU将花更less的时间睡觉。