2012-09-02 8 views
12

私はSqliteクエリの行をループするために次の行を使用しています。Sqliteクエリから行を反復処理する高速な方法はありますか?

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

cursor.moveToFirst(); 
do {  

    // do something  

} while (cursor.moveToNext()); 

cursor.close(); 

行数が約15000の場合、時間がかかります。 空きがある場合は約4秒かかります。whileブロックの場合、およそ6秒でwhileブロックのコードには6秒かかります。このように行を反復処理することは時間がかかることを示しています。

アンドロイドとSqliteで行を高速化する方法はありますか?

おかげで、

+0

私はSQLiteのためのあなたの使用例わからないんだけど、これは有用であり得る:http://shopwith.it/2011/12/16/how-to-improve-android -app-performance-by-caching-data-in-sqlite-and-sd-card-android-developer-tips/ – Eric

+0

あなたがそれを実現しているなら、一度にたくさんの記録がありますか?また、あなたのSELECTステートメントで崩壊することはできますか? –

答えて

4

は、あなたがループ内で何をすべきかの最適化全体の動作速度を改善する唯一の方法です。たとえば、すべての繰り返しでgetColumnIndexコールを実行している場合、貴重な時間が失われます。一度やって、値を保存してください。

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


Traceview Debugging

関連する問題