为提高查询性能,现为SQL SERVER2005增加了一台存储。为了测试性能提升的幅度,新安装了一台64位SQL SERVER2005服务器,旧的为32位SQL SERVER2005,旧的使用15000转硬盘,新的使用5400转硬盘,两台服务器都使用该存储,存储上各挂载一个内容完全一致的数据库。目前的测试结果是执行相同的查询语句,旧的服务器速度是新服务器的3倍,也就是说查询速度取决于DBMS所在硬盘速度,存储的高性能完全没有体现出来。请问这是怎么回事?
------解决方案--------------------
一般来说,查询和你的内存有关(除了第一次),如果数据都能加载到内存,那么基本上所有查询都在内存中运行,物理IO很少
------解决方案--------------------
受影响的因素很多,但楼主的环境,是典型的SQL执行计划的不同导致的
执行计划会考虑硬、软环境
通常,对绝大多数系统,要提升性能,从结构(比如索引)设计、SQL代码调整会有最好的效果
也可能SQL代码根本不能修改,比如写死在.exe里
------解决方案--------------------
2机的内存各多少G?
数据库文件是多少G?
只有系统文件是在各自的硬盘?是不是 master/tempdb等系统库也在各自硬盘了?!
------解决方案--------------------
虽然都是存储,但是一个是15000转的影片,一个是5400转的,当然效果差很多啊。数据库需要从存储上读数据,那么磁盘性能好当然数据库的性能就好啊,15000的时5400的三倍啊。
------解决方案--------------------
你应该使用同一台客户端去连接两个SQL实例,而不是使用两个客户端。
因为SSMS用来显示数据时,会使用本地磁盘的,而你的应用则不会这样。