多处理器与查询性能

来源:互联网 发布:免作业卡淘宝网 编辑:程序博客网 时间:2024/05/21 10:47

http://topic.csdn.net/u/20081106/10/93b20deb-bbd8-4f9d-b9e1-5ac28c8fc3db.html?778318758

同一个数据库文件,分别在两台机器上还原,为什么执行存储过程速度不一样
A机器(xp,mssql 2000,NTFS格式盘,{ibm r51e本本,512内存}...)
B机器(win2000 mssql 2000,Fat32格式盘{dell 2800服务器,2G内存}...)


在我自已的机器上即A机器,运行时间25秒
  在B机器上运行时间为,6分52秒。

已更新统计sp_updatestats db


原以为是存储过程的问题,优化后仍旧存在该问题。

===================================

经过再三改造仍没有发现问题,多次跟高手讨论后,有一思路,对比执行计划。

 

最终发现,多处理器服务器的结果中,多了一个并行流操作。

 

资料中显示,是多处理器所发生的问题,当查询成本过高超过预定阀值时,启动并行计划。

1,单cpu,不进行任何操作,因些在本地单处理器速度没问题

2,多处理器,当查询成本过高时,进行并行计划,使用多处理器操作

 

问题在于,多处理使用多线程操作,最终要进行合并数据流操作,该处是时间的浪费。因为数据量小时,处理器间的等待大于了IO的时间,这时并行成本就高于串行。

 

当在数据量较大的情况下,并行计划的性能应该是高于串行的。

 

如何使系统正确的进入并行轨道,需要我们进一步改造sql语句

 

最后,问题基本解决,时间为50秒,仍高于单处理器执行时间。我会继续研究。。。