系统是用Delphi开发C/S模式的ERP系统,数据库是SQL2005,目前数据库大约12G,客户端在100-130个左右。
服务器配置情况:HP ML350 G5
    CPU:至强5120(双核)*2
    内存:2G*2
    硬盘:3个scsi硬盘(80G)做RAID5目前系统运行速度相当慢,查询十几条数据就要等将近一分钟,如查询整月数据(大概有上千条或几千条记录)则需要十几分钟。提交单据的速度也差不多是这么慢。已到了无法忍受的程度。附服务器性能日志:磁盘已经是整天满负荷运转。
附设备管理器
初步判定:一、磁盘读写速度是瓶颈
          二、ERP系统自身的原因,但由于系统是公司自己开发,当初的开发人员大都离开了,没人能提供技术支持,优化系统已无可能。看来只能想办法提高硬件性能了!     最近刚升级过阵列卡(设备管理器上可看到),但也没什么效果。
     
如果再加3块硬盘(共6块硬盘)组RAID5,或者6块硬盘做RAID0+1,能不能大幅度提高磁盘的读写速度?
RAID5 与 RAID0+1 哪个效率更高一点呢?
如果采购新服务器什么配置比较合适?或者还有什么其他方法?请各位帮帮忙!!!  谢谢!

解决方案 »

  1.   

    性能日志截图链接:
    http://hi.baidu.com/sunburst_707/album/item/503a5d7f49a846b60bd187f2.html#IMG=503a5d7f49a846b60bd187f2设备管理器截图链接:
    http://hi.baidu.com/sunburst_707/album/item/503a5d7f49a846b60bd187f2.html#IMG=503a5d7f49a846b60bd187f2不会发图··
      

  2.   

    1、加硬件 2、表分区 3、建立多个读数据库 4、修改SQL语句最好封装成存储过程。
      

  3.   

    谢谢楼上回复!
    另,操作系统是windows2003 32位,不知道能不能换成64位的?不知道对ERP系统和sql有何影响?如何建立多个读数据库?能否详细说明呵呵 本人菜鸟一个!
      

  4.   

    给你些建议吧:
    我也曾多次遇到SQL 速度慢的问题!--首先从两个方面:
    1\分析是硬件的问题,比如内存经常在90%,CPU经常在80%以上,建议加硬件了.提升硬件速度.加内存,内存够的话对整个磁盘的读写能力会减轻很多.我们公司以前的内存是4G,现在升级为64位,可以用16G,速度大幅度提高,但有时也会出现慢,只是有时锁的问题...
       硬盘建议用RAID0+1,现在的硬盘又不贵.数据库一般都建议用RAID10.一是安全,二是速度.都比较有保障.2\软件方面:
       检测耗用内存,CPU最多的语句或过程,进行跟踪优化,SQL2005中有一个表sys.dm_exec_query_stats可以看到.当然也可以根据Read80Trace程序进行统计跟踪.(比如一个小时的跟踪查看耗用资源最多的语句).
    根据这些信息再来优化数据,如:加索引,分区表,....优化语句啊.
    总结:以前听过一句话, 数据库慢的80%的因素是SQL语句.所以把SQL语句优化好对速度提高很快的
    当然加硬件也可以的
    A. 按平均 CPU 时间排在前五个的查询
    此方案提供有关 CPU 时间、IO 读写以及按平均 CPU 时间排在前五个查询的执行次数的信息。
    SELECT TOP 5 
    total_worker_time/execution_count AS [Avg CPU Time],
    (SELECT SUBSTRING(text,statement_start_offset/2,(CASE WHEN statement_end_offset = -1 then LEN(CONVERT(nvarchar(max), text)) * 2 ELSE statement_end_offset end -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle)) AS query_text 
    FROM sys.dm_exec_query_stats 
    ORDER BY [Avg CPU Time] DESC
     
    以上拙见...
      

  5.   

    还是建议你做个SQLDIAG的诊断报告,获得整个系统的性能信息,然后才能更有针对性的做出调整。不然如果参照网上提供的一些建议,有点盲人摸象的感觉。
      

  6.   

    你ERP软件不是64位的,操作系统没必要换成64位,2G内存太少了,我们的2003系统内存装了8G,给了数据库用了4G,系统和数据库都要特别设置才能支持。磁盘I/O瓶颈也是关键,看是读多还是写多综合决定用哪种阵列
      

  7.   

    更新设备管理器图片:
    http://hi.baidu.com/sunburst_707/album/item/a872b0153ecf3484a6ef3f72.html
      

  8.   

    Server配置比较低噢,硬件升级来的最快.
      

  9.   

    谢谢各位热心回复!先加硬盘再说了,6块(80G)硬盘做RAID几比较合适?
    一、5块硬盘组RAID0 ,剩下一块硬盘单独做备份。
    二、6块硬盘做RAID5。
    三、6块硬盘做RAID10。如果只在二和三中选,哪个比较读写效率高?
      

  10.   


    我这菜鸟水平,要优化索引和sql语句没10天半个月的搞不定啊。
    日志和数据库文件分开是指放到不同的分区下吗?
      

  11.   

    以前碰過類似問題,說白了就是沒有索引或索引沒用得上,
    由於個系統是供應商完全支援的,所以不能直接更改數據庫任何對象!!!-----郁悶中最後考慮用上了固態硬盤SSD,一切問題就得到迎刃而解,
    因為固態硬件的性能是普通硬件的好幾倍。(SSD讀能力的速凍至少是傳統硬盤的4倍以上)若經濟能力允許,全部置換Intel固態硬盤(Raid 0+1)不失為一個好的解決方案,希望該建議對閣下有用拉 ^_^
      

  12.   

    问题基本解决了。加装硬盘后,效果不是很好。
    这样加的:一块72G硬盘做系统,新购的6块146G硬盘做 RAID 1+0 专门放数据库用。做完后用HD_speed测速度,大概450M,比原来(200M)快了不少。  但系统运行速度依然没有什么改善。后来同事帮忙把数据库备份一下,删掉一年以前的数据,系统运行速度终于大幅提高了。看来就是SQL语句效率太低的问题了,数据量小时不明显,几年后数据量一大就完蛋了,以后要重点学习了。
        这办法就是麻烦了点,要查一年以前的数据还得再架个服务器进入另外一个系统。另外书库中表太多,误删数据在所难免。删完数据后速度是快了,也出现不少异常问题。感谢各位热心帮助!