我有一个数据转换查询需要很长时间才能在我的开发机器上运行(Core i7 920运行在3.9GHz,在Windows Server 2003 x86下有12GB内存,有2个Velociraptors 300GB iN RAID0)。
当我查看任务管理器时,CPU保持在26%左右,第三个(满分4个)核心最活跃。
由于这不是一个生产环境,有没有办法告诉SQL Server 2008我可以使用更多的CPU,或者是因为我的查询由于某种原因无法并行化? 如果,SQL Server不应该足够聪明,可以在较小的块中剪切查询并在多个线程中运行它,以便每个核心都能获得它吗?
感谢。
答案 0 :(得分:2)
优化您的查询。可能是问题在于它而不是SQL Server。
答案 1 :(得分:0)
除非您通过配置或通过设置MAXDOP参数将其专门限制为仅使用一定数量的CPU,否则它已经知道它没关系。
听起来你可能比你的硬盘或内存更受限制。
请注意,因为您运行的是x86版本的Windows(以及扩展名sql server),所以RAM可能限制在3GB左右。即使启用了PAE(物理寻址扩展),与开始使用x64操作系统和SQL Server相比,它也会变得更慢。
换句话说,您可以考虑从头开始重新安装机器,以充分利用您拥有的所有x64优势。