??????? 這幾天一直在搞一家客戶的產品升級動作,數據的轉移已經完成大部分,因為升級主要的目標是處理性能問題,所以我針對性的對將要升級的版本進行了一些操作性能檢查,真是不做不知道,一做嚇一跳,有一個查詢選擇人員的頁面數據(60,000)的結果顯示居然花費了50s......oh, my god
??????? 沒有辦法就仔細打開代碼開始分析,分析結果是這樣的:
??????? 1、數據綁定動作做了2次,最要命的是其中一次是直接綁定了所有60,000條數據,這直接將效率下降了40s左右(注:我們系統對于數據的查詢采用的是部分綁定,只綁定需要顯示的數據),修改后查詢需要時間10秒左右。
??????? 2、代碼中將數據查詢出來后又針對這些數據做了一次循環遍歷,將其中3列合并為1列,耗時3s左右......faint again...修改方式不用多說,直接將運算動作放到了SQL中,SQL的運行時間基本無變化。
??????? 3、SQL語句分析完后發現在Where子句中居然存在兩個字段直接等于的情況(WHERE PSNACCOUNT.PERSONID = PSNACCOUNT.PERSONID),進行了完全沒有必要的數據庫運算,去掉后SQL語句的執行再次提高3s,經過代碼分析,產生這個條件是原因是 —— 某個公用組件的使用方法不正確......無語
??????? 經過這次事實的經驗教訓,更加讓我清楚地認識到了Code Review的重要性,尤其是在軟件產品發展的過程中,一個非常簡單的道理:Code Review做的越早,產品就可以做得越好!
轉載于:https://www.cnblogs.com/minbear/archive/2006/07/25/459707.html