上个星期整个星期在值班,真是辛苦,正值上线初期,一线操作人员不熟悉操作,更重要的是软件不成熟带来的诸多问题,弄得我疲于奔命,好在,总算过去,可以好好休息一下。
今天星期一,上午是业务最繁忙的时候,但很不幸,坏事还是发生了,9点半左右,内科打电话过来说系统运行速度极慢,医生保存一条医嘱要等1-2分钟,这个不是夸张,我自己试过,需要1分钟左右的时间,于是马上打电话到收费处问问速度,结果一打过去,对方就说,正想打电话给我们说速度很慢,病人已经排到楼梯口了……。其实这个问题在上星期已经出现,一直以来,客户端的运行速度不断的在下降,于是查找原因,起初还是在数据库上做文章,加索引,加大临时表空间,可是收效甚微。
今天,公司告诉我,他们查到原因了,他们在他们的数据访问类里面加了调试输出,结果发现,医生有可能在接诊病人开医嘱的几分钟时间里发出上百条SQL执行请求,然后我自己跟了下程序,发现的确很多SQL请求,而且大多数都是重复的,太可怕了,我就是选择一条已经开立的医嘱,也有16条SQL语句出现,这下明白了,就算服务器处理能力再强,也无法抗的住如此浪费的SQL请求狂潮,系统是C/S两层结构,没有中间的应用服务器,不能做缓冲,那么解决问题的关键只能在客户端程序里建立一些缓存机制,减少频繁查询数据库,但这个工作非常繁杂,而且风险很大,我准备找医生站程序作为试点。
今天星期一,上午是业务最繁忙的时候,但很不幸,坏事还是发生了,9点半左右,内科打电话过来说系统运行速度极慢,医生保存一条医嘱要等1-2分钟,这个不是夸张,我自己试过,需要1分钟左右的时间,于是马上打电话到收费处问问速度,结果一打过去,对方就说,正想打电话给我们说速度很慢,病人已经排到楼梯口了……。其实这个问题在上星期已经出现,一直以来,客户端的运行速度不断的在下降,于是查找原因,起初还是在数据库上做文章,加索引,加大临时表空间,可是收效甚微。
今天,公司告诉我,他们查到原因了,他们在他们的数据访问类里面加了调试输出,结果发现,医生有可能在接诊病人开医嘱的几分钟时间里发出上百条SQL执行请求,然后我自己跟了下程序,发现的确很多SQL请求,而且大多数都是重复的,太可怕了,我就是选择一条已经开立的医嘱,也有16条SQL语句出现,这下明白了,就算服务器处理能力再强,也无法抗的住如此浪费的SQL请求狂潮,系统是C/S两层结构,没有中间的应用服务器,不能做缓冲,那么解决问题的关键只能在客户端程序里建立一些缓存机制,减少频繁查询数据库,但这个工作非常繁杂,而且风险很大,我准备找医生站程序作为试点。