日期:2014-05-18  浏览次数:20522 次

sql server 2000 raid 10 写入性能极其低下,求出主意
服务器配置:12核cpu, 24g内存, 硬盘 raid1 2块(系统/64位window2003),raid10 4块(数据库/sql server 2000)

无论任何表的update,insert效率极其慢。

硬盘测试 raid10 顺序读323MB/s 写90MB/s

例子:

1. 表中只有502条数据,只有bigint类型的pk,无其他索引列,根据pk batch update其中一个字段,502条耗时18秒。本地测试无阵列数据库同一张表,同样操作耗时300毫秒。

2. 表中1万条数据,只有bigint类型的pk,无其他索引列,根据pk batch update其中一个字段,1万条耗时350秒。本地测试无阵列数据库同一张表,同样操作耗时1.7秒。

求各位大虾出出主意,看看问题在哪儿,感谢~

------解决方案--------------------
一般情况下raid10不会成为性能瓶颈,你需要查看在update/insert时,该语句的等待类型是什么?
现在还有人用sql server 2000? 2k太弱了。
------解决方案--------------------
你可以看一下你分给SQL使用的内存有多大,另外,其日志是保存全部日志吗?这个数据库只有一个数据文件吗?数据文件时放在了你测试硬盘没有问题的那个卷里面吗?使用一下操作系统的性能查看器,看是问题出在硬盘上还是cpu,还是内存上。你的硬件已经非常超强了。你估计就是出在配置上了。考虑过网络因素吗(如果仅仅一条update语句,不涉及网络因素)?
我现在的一个项目,400多人同时在线使用,硬件就是Win2003, sql2k,内存4G,硬盘160G Raid0+1,CPU 4核2.01G,一点问题也没有。400多人使用的时候还使用扫枪等录入设备速度很快的。没有任何性能瓶颈。

------解决方案--------------------
只有实际监测分析才有结果。。猜不出答案的
或许是其他阻塞导致
------解决方案--------------------
数据分区推荐用Raid5即可,性价比较高.

也可能是Raid10的磁盘问题,检查服务器上的硬盘灯是否正常.

或用服务器自带的工具测一下磁盘I/O的性能.


------解决方案--------------------
用windows 2003下的性能监视器跟踪一下具体的性能瓶颈在那?
是那些update或insertI/O操作过于频繁
还是其他问题。也可以用一下sql server 2005的报表服务具体观察那些查询对磁盘的I/O消耗比较大。
------解决方案--------------------
是不是把日志文件和数据文件放到一个回转轴里了?
------解决方案--------------------
先说一句,在不计算投入费用的情况下,1 0是性能最优的方案了,raid5的瓶颈很明显就是在写上面,另外raid一旦有一块硬盘损坏,那个修复速度也是很不理想的,上星期我这一台dell的服务器raid5阵列做一块320g的raid5的online rebuild做了整整2个晚上.让我提心吊胆了半天

楼主的问题肯定不在阵列上,应该在其他方面好好查查了(在任何破机器上都不应该跑出这样的数据)
如果楼主怀疑是sqlserver层面的io问题,你必须先要排除windows层面的io问题.
这种问题我碰到过的经验 往往都是windows配置不当的可能更大.善用windows的性能计数器记得.可惜这种问题网上说不清楚,有兴趣把具体情况pm给我