2012-09-02 33 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时,需要很长时间。 对于空while大约需要4秒,对于while块需要大约6秒的代码块。它表明以这种方式在行上迭代是耗时的。

有没有更快的方式循环在android和Sqlite中的行?

感谢,

+0

我不知道你的用例SQLite的,但是这可能是有用的:http://shopwith.it/2011/12/16/how-to-improve-android -app-performance-by-caching-data-in-sqlite-and-images-to-the-sd-card-android-developer-tips/ – Eric

+0

如果你为它着想,你能解释为什么你需要检索这么多记录一次?你也不能在你的SELECT语句中折叠到更少? – 2012-09-02 09:12:54

回答

4

优化你在循环里做的是提高整个操作的速度的唯一途径。例如,如果您在每次迭代中都要拨打getColumnIndex,那么您将失去宝贵的时间。做一次,存储价值。

使用traceView可以找到放松时间的地方并在那里改进。可悲的是我不能给出具体的答案,因为我不知道你在做什么。


Traceview Debugging

相关问题