SQL Server DB 基于多核CPU的设置
随着多核CPU的普及, SQL SERVER在处理并发情况会碰到这样一个情况: 一旦有个复杂查询占用了CPU, 则所有的CPU都会被Block住, 导致SQL Server的等待队列很长, 在这种情况下, CPU使用率也许不高, 磁盘IO的情况也很好, 但用户就是感觉慢.
SQL Server 2008 有一个参数(以前的版本有没有未测试), 可以设置多少个CPU去处理一个查询, 这样, 剩下的CPU可以去处理其它的复杂查询.
脚本如下
sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
sp_configure 'max degree of parallelism', 4;
GO
RECONFIGURE WITH OVERRIDE;
GO
注: 文章中的CPU是以核来算, 例如, 8个8核CPU, 就是64个CPU.