6

トランザクションでも sqlite 挿入のパフォーマンスに問題があります。私の Android アプリは Web サービスから約 23.000 行を受け取り、それらを 1 つのテーブルに挿入する必要があります。

Web サービスは分割されているため、WS へのすべての要求で約 2000 行を受け取り、トランザクション内で 2000 の挿入をラップします。これらの挿入が完了したら、新しい要求を WS に送信し、新しい 2000 行に対して新しいトランザクションを再度使用します。

最初は問題なく動作します。1 秒間に多くの挿入を行います。しかし、時間の経過とともに遅くなり、最終的には 23000 行を完了するまで、1 秒あたり 4 または 3 回の挿入になります。

テーブルのサイズに問題はありますか?大きくなると挿入が遅くなりますか?その大量のデータのパフォーマンスを向上させる方法はありますか?

ご協力いただきありがとうございます。

4

2 に答える 2

1

SQLiteのパフォーマンスを向上させるにはどうすればよいですか? という質問に、SQLite のパフォーマンスをカバーする優れたスレッドがあります。これはかなり良いです。まだ使用していない場合は、少なくとも準備済みステートメントを使用します。

ただし、Android を使用しているため、フラッシュ メモリへの書き込みで I/O のボトルネックが発生している可能性があると推測しています。さまざまなメーカーのさまざまなデバイスでコードを実行してみて、極端な違いがあるかどうかを確認してください。

于 2012-07-29T19:36:20.477 に答える
0

データのパーティショニングを使用する必要があります。100~100枚ずつ挿入できるので、スムーズに挿入でき、データロストの心配もありません。

あなたが非同期(他の可能性があります)スレッドを使用していると私が想定しているもう1つのこと。

または、最後のケースでサービスを使用して、一度にすべてのデータを消費することもできます。

于 2013-10-26T05:14:39.587 に答える