今天一天幾乎都是在與數據庫打交道,碰到過去從未想過也不曾碰到過的問題,也讓我對數據庫有了一些新的認識,新的感受,主要是兩個方面,一個是ORDER BY,一個是Batch。
情景一:有兩張表,一張有100萬條記錄,另一張有300萬條記錄。
最初的SQL是連接兩張表,并對其中一個表的非索引字段排序,并取出幾千條的數據,花費了很長的時間,最終分析得出,大部分時間花在排序上。后來去掉了ORDER BY并使用客戶端的Utils方法對已經取出的數據進行排序,查詢速度大大優化。
情景二:對取出的結果進行一定的處理,并更新其中一張表。
最初的辦法是處理一個更新一個,效率很低,最后和老員工交流經驗得到真傳,于是決定使用Batch來批量更新數據庫,效率極大的提高,有一個數量級,但是因為我本地客戶端沒有裝DB2的升級補丁,無法在客戶端更新,在服務器上更新成功。
總結,數據庫的訪問效率應該是這類系統最主要的瓶頸,多花點時間放在查詢語句和查詢策略上,有時候效率提高會很大。
posted on 2005-11-28 17:24
steady 閱讀(465)
評論(0) 編輯 收藏 所屬分類:
技術隨筆