qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Android批量插入數據性能優化

           做數據同步時遇到一個問題,在下載數據時需要批量的向sqlite插入數據,雖然數據不算多,但是實際測試中每插入一條數據需要將近50ms的時間,這意味著1000條數據就需要花費50s左右的時間,對于用戶來說,體驗太差了,必須要優化。
            在sqlite插入數據的時候默認一條語句就是一個事務,有多少條數據就有多少次磁盤操作。明白了這個,解決方案就有了,在批量插入數據的時候,只開啟一個事務,這樣只會進行一次磁盤操作,代碼如下:
          db.beginTransaction();
          try {
          for (...) {
          db.execSQL("...", new Object[]{});
          }
          db.setTransactionSuccessful();
          } catch (Exception e) {
          } finally {
          db.endTransaction();
          }
            使用事務后性能有明顯的提升,以批量操作100條為例,由原來的5s優化成了現在的1s

          posted on 2014-03-21 12:57 順其自然EVO 閱讀(319) 評論(0)  編輯  收藏 所屬分類: android

          <2014年3月>
          2324252627281
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大城县| 绵竹市| 德阳市| 三亚市| 永泰县| 疏勒县| 正阳县| 门源| 扎兰屯市| SHOW| 滁州市| 新泰市| 苗栗县| 江城| 三江| 栾城县| 东乡族自治县| 龙山县| 布拖县| 内乡县| 厦门市| 连南| 江门市| 泽州县| 仲巴县| 临清市| 拜泉县| 兴业县| 太谷县| 怀集县| 碌曲县| 睢宁县| 江陵县| 三江| 霍林郭勒市| 延安市| 阿荣旗| 永济市| 密云县| 页游| 西安市|