14

Sqlite クエリの行をループするために次の行を使用しています。

this.open(); // opening db
Cursor cursor = db.rawQuery(strQuery, null);

cursor.moveToFirst();
do {    

    // do something    

} while (cursor.moveToNext());

cursor.close();

行数が 15000 程度になると時間がかかります。空のwhileブロックwhileの場合は約 4 秒、コードのあるブロックの場合は約 6秒かかります。この方法で行を反復処理すると時間がかかることがわかります。

AndroidとSqliteで行をループするためのより速い方法はありますか?

ありがとう、

4

1 に答える 1

5

ループ内で行うことを最適化することが、操作全体の速度を向上させる唯一の方法です。たとえばgetColumnIndex、すべての反復で呼び出しを行う場合、貴重な時間を失うことになります。一度実行して、値を保存します。

traceView時間を失っている場所を特定し、そこで改善するために使用します。残念ながら、ループ内であなたが何をしているのかわからないので、具体的な答えを出すことはできません。


Traceviewのデバッグ

于 2012-09-02T06:27:33.430 に答える