服务器是 4个四核处理器(16个CPU)
做复杂查询测试的时候发现
每次查询总会让其中几个CPU使用率升到100%而其他的CPU毫无反应.
其中sql是2005的 已经安装了sp3的补丁了
服务器是2003 sp2的也打过补丁(支持多核的KB936357补丁也有)我想需要通过某种设置或者升级处理 
使得其在做查询的时候是同时在使用大部分的CPU 不出现有CPU闲置的状态以提高CPU的使用率
也可以提高SQL的查询速度.
请问有谁遇到过相关的问题 应该如何解决.
在线急等!

解决方案 »

  1.   

    affinity mask 选项存在于 SQL Server 的早期版本中,用于动态控制 CPU 关联。在 Microsoft SQL Server 中,可以配置 affinity mask 选项而无需重新启动 SQL Server 实例。使用 sp_configure 时,必须在设置配置选项之后运行 RECONFIGURE 或 RECONFIGURE WITH OVERRIDE。使用 SQL Server Express 时,更改 affinity mask 选项不需要重新启动。
    例如,设置 affinity mask 选项时,如果选择处理器 1、2 和 5 作为可用的处理器,并将位 1、2 和 5 设置为 1,位 0、3、4、6 和 7 设置为 0,则将指定十六进制值 0x26 或等于 38 的十进制值。从右至左对位进行编号。affinity mask 选项按从 0 到 31 的方式来计算处理器,这样在以下示例中,计数器 1 表示服务器上的第二个处理器。
    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    GO
    sp_configure 'affinity mask', 38;
    RECONFIGURE;
    GO
      

  2.   

    sqlserver默认是使用所有的核
    但是,一般的工作,只会使用满1个核,这时,其它核必然是空闲的
    只有工作能被并发执行,才会使用满多个核,甚至用满所有的核
      

  3.   

    保持默认设置,该部分MSSQL自动优化。
      

  4.   

    是用的默认设置  在服务器属性里也勾选过部分CPU使用
    但是始终只会用其中1到两个CPU在做查询 
    等待高手
      

  5.   

    同样的问题,某一台客户端查询的时候,只有一个cpu使用100%,另外三核闲置,这时其他客户机近乎死锁状态,无法执行任何操作
      

  6.   

    死锁 与 cpu是否空闲无关
      

  7.   

    AWE和cpu有关?SELECT wait_type,SUM(waiting_tasks_count) t_cnt,SUM(wait_time_ms)w_total,SUM(signal_wait_time_ms)sw_total
    FROM sys.dm_os_wait_stats
    group by wait_type
    order by SUM(wait_time_ms) desc贴上来瞅瞅呗。有可能是正常的不需要这么cpu而已。
      

  8.   

    LZ解决了没?遇到一样的问题16核就一个U 100% 其他0%
      

  9.   

    如果没强制绑定一个CPU,如果是大成本(超过2),SQL OS默认会启用多CPU并发
    可能只实际诊断才会有结果
      

  10.   

    也许并发的效率更差?
    sql server自己选择了单CPU的执行计划