日期:2014-05-17  浏览次数:20736 次

奇怪的问题,SQL2008和SQL2000速度差异很大
2台测试机器,
A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍

B机器:THINKPAD笔记本,16G内存,WIN7旗舰版64位同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2000速度比SQL2008快2倍

数据库都是一样,的,两台机器都安装了SQL2000,和SQL2008
两台机器测试结果完全相反,请问这是什么原因,是不是B笔记本上的SQL2008设置有问题?



测试 服务器

------解决方案--------------------
同机器的2次测试时,最好关闭另一个实例,并清除缓存和执行计划后再进行测试..

-- 清除缓存的执行计划
DBCC FREEPROCCACHE

-- 清除缓存的数据
DBCC DROPCLEANBUFFERS

------解决方案--------------------
其实"1500万条数据查询测试"的本质是对磁盘I/O效率的测试..

1. THINKPAD笔记本有几个硬盘?
   SQL2000和SQL2008分别安装的路径是?
   附加的数据库文件路径是?

2. 检查SQL2008的系统设置,是否有设定最大使用内存.
   检查SQL2008是否是32位版的?

------解决方案--------------------
A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍

给结果

SET STATISTICS IO ON
GO
SET STATISTICS TIME ON
GO
你的语句

------解决方案--------------------
你只给内存.还有CPU.硬盘呢.还有系统运行时的环境呢.?
------解决方案--------------------
WIN7旗舰版64位
只能安装开发版的sql吧?这样的数据库有很多限制的
------解决方案--------------------
重建索引、更新统计,设定兼容级别后再测试
------解决方案--------------------
引用:
你只给内存.还有CPU.硬盘呢.还有系统运行时的环境呢.?

还要关注那些 环境呢?
会有什么影响呢?
------解决方案--------------------
引用:
Quote: 引用:

A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍

给结果

SET STATISTICS IO ON
GO
SET STATISTICS TIME ON
GO
你的语句


就是普通查询语句,THINKPAD上2000大概30秒左右,2008要1分50秒

你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。

SET STATISTICS profile ON
GO
SET STATISTICS IO ON
GO
SET STATISTICS TIME ON
GO

只能把上面三个结果完整的贴出来,才能做到有的放失的去分析,否则只能靠猜。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

A机器:曙光服务器,32G内存,WIN2008SERVER,同一个数据库附加在SQL2000和SQL2008上,1500万条数据查询测试,SQL2008速度比SQL2000快2倍

给结果

SET STATISTICS IO ON
GO
SET STATISTICS TIME ON
GO
你的语句


就是普通查询语句,THINKPAD上2000大概30秒左右,2008要1分50秒

你不给出详细结果,如何帮你分析呢除了上面两条建议再给出另外的计划。

SET STATISTICS profile ON