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

软件系统执行速度优化
公司最近开发一套商务系统,在系统中有4万多条数据需要处理,处理时程序要不断地访问数据库表,这时系统的CPU占用100%主要是SQLserver.exe进程,而且处理完4万条数据需要十几个小时。
请问大家有什么好的建议。这个功能模块用c/s还是b/s好!

------解决方案--------------------
可以减少数据库IO操作
如使用存储过程,尽量把SQL写到里面去
取数据分析时,尽量取数据集的方式,分块读取,缓存然后分析,减少IO次数
如果可以使用多线程来处理,这样就可以合理的利用CPU资源
------解决方案--------------------
如果程序要不断的访问数据库,那么最好首先从程序上面优化,尽量减少访问数据库,使用缓存,就目前来看,bs是主流虽然未必性能最佳
------解决方案--------------------
对.存储过程.多点.


------解决方案--------------------
预处理,根据你业务逻辑的要求,在空闲时间把数据处理成最接近你需要的结果,至于新增的数据,数据量相对小得很多,处理起来就比较快.

按你的说法,应该说4万多条数据并不多,只是逻辑复杂而已,此时,你应尽可能把逻辑理清,放在数据库中统写若干个存储过程统一处理,利用临时表要比反复杂读取要快的多

如果数据的运算复杂,此时SQL操作起来也复麻,你可以用C#编写存储过程,主要实现数据的复杂操作,再结合数据库的处理能力,应能提升效率