0

私はAndroidアプリを開発しています。ここでは、サーバーに10フィールドの約10000レコードの膨大なデータがありません。このデータを取得してローカルデータベースに保存する必要があるため、このために、 jsonの形式のデータを解析してdbに1つずつ挿入すると、データのダウンロードにかかる時間は短くなりますが、dbに挿入するのに時間がかかります。しばらくすると、dbに1つずつ挿入していることがわかります。 1つであるため、取得されたレコードの総数に基づいて挿入操作がループします。私はこれを行う方法を見つけることができなかった代替案を探しようとしたので、これを達成するための提案とスニペットを私に提供するようにお願いします。

ありがとうございます

4

1 に答える 1

0

トランザクションを使用して、複数の挿入を 1 つの操作にラップします。これははるかに高速です: SQLite の 1 秒あたりの INSERT パフォーマンスを改善しますか?

List<Item> list = getDataFromJson();
SQLiteDatabase db = getDatabase();

db.beginTransaction();
try {
    // doing all the inserts (into memory) here
    for(Item item : list) {
        db.insert(table, null, item.getContentValues());
    }
    // nothing was actually inserted yet
    db.setTransactionSuccessful();
} finally {
    // all inserts happen now (if transaction was set to successful)
    db.endTransaction();
}
于 2012-08-08T15:45:31.603 に答える