2011年8月24日水曜日

AndroidのSQLite高速化

旅宿アプリで使っているDBの登録処理が長かったので、
SQLiteの高速化処理について調べてみました。

高速化の方法はTransaction処理を明示的に行うこと。
今回は複数行を1行ずつDBに登録していました。

トランザクション処理を記述する前は、
400行のデータの登録するのに40秒かかっていました。

トランザクション処理を記述後は、5秒で完了しました。

ソースはこんな感じです。

               try {

        database.beginTransaction();  // ①
   
    for(Data data : list) {
    // DBに登録
    database.insert(data);  // ②
    }
           database.setTransactionSuccessful();    // ③
    } finally {
    database.endTransaction();  // ④
    }

①・・・トランザクションを開始
②・・・DBに挿入
③・・・コミット
④・・・トランザクション終了



参照元
http://www.atmarkit.co.jp/fsmart/articles/android06/android06_2.html

0 件のコメント:

コメントを投稿