开发笔记7 2012-5-9 周三 终于把COM口收发短信的C代码修改好了,以前连续发送两条就会出错,第二条总是发送不了,跟踪下日志,发现第一条根本没收完应答,以前的代码可能从网上COPY回来都没怎么修改,听说是很早时一个毕业生写的,能搞出来发个单条就算了。COM收发是很慢的,所以要自己判断,多次读写。
做完后检查了一下Web管理系统,美工和JAVA开发人员搞的一团糟,很多页面上周还可以,现在竟然修改到这样了。新兵组队配合很成问题,配合默契都需要一个过程,急功近利结果是人心惶惶。
还发现一个统计页面慢得像蜗牛一样,一分析sql极端复杂,而且思路有点搞错,虽然最后结果也正确,赶快自己写个存储过程,利用临时表,很快搞定,同样的数据,1秒钟都不用,数据本来就很小,就是需要5张表联合查询而已。
当业务逻辑需要很多表关联查询时,有时硬是要一条语句搞定,其结果可能性能无法接受,我喜欢两种做法:
1. 数据库支持存储过程,最好在存储过程里封装对表的密集访问,可以适当分步骤查询,借助临时表缓存中间数据,常常简化问题,容易实现,简单就不容易出错,真要优化也容易找。
2. 如果不想写存储过程,那就在JAVA代码里采用多次调用,自己在JAVA代码里实现一些数据合并等。
我对数据库不熟悉,花的时间太少了,尤其是ORACLE,都想把部分系统的数据库从ORACLE转到MYSQL,集中学一门容易,杂了总是不好。