開發筆記7 2012-5-9 周三 終于把COM口收發短信的C代碼修改好了,以前連續發送兩條就會出錯,第二條總是發送不了,跟蹤下日志,發現第一條根本沒收完應答,以前的代碼可能從網上COPY回來都沒怎么修改,聽說是很早時一個畢業生寫的,能搞出來發個單條就算了。COM收發是很慢的,所以要自己判斷,多次讀寫。
做完后檢查了一下Web管理系統,美工和JAVA開發人員搞的一團糟,很多頁面上周還可以,現在竟然修改到這樣了。新兵組隊配合很成問題,配合默契都需要一個過程,急功近利結果是人心惶惶。
還發現一個統計頁面慢得像蝸牛一樣,一分析sql極端復雜,而且思路有點搞錯,雖然最后結果也正確,趕快自己寫個存儲過程,利用臨時表,很快搞定,同樣的數據,1秒鐘都不用,數據本來就很小,就是需要5張表聯合查詢而已。
當業務邏輯需要很多表關聯查詢時,有時硬是要一條語句搞定,其結果可能性能無法接受,我喜歡兩種做法:
1. 數據庫支持存儲過程,最好在存儲過程里封裝對表的密集訪問,可以適當分步驟查詢,借助臨時表緩存中間數據,常常簡化問題,容易實現,簡單就不容易出錯,真要優化也容易找。
2. 如果不想寫存儲過程,那就在JAVA代碼里采用多次調用,自己在JAVA代碼里實現一些數據合并等。
我對數據庫不熟悉,花的時間太少了,尤其是ORACLE,都想把部分系統的數據庫從ORACLE轉到MYSQL,集中學一門容易,雜了總是不好。