有没有更快的方法来迭代Sqlite查询中的行?

时间:2012-09-02 06:00:41

标签: java android sqlite cursor

我使用以下行来循环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中的行?

谢谢,

1 个答案:

答案 0 :(得分:4)

优化循环内部的操作是提高整个操作速度的唯一方法。例如,如果您在每次迭代时都进行getColumnIndex次呼叫,那么您将失去宝贵的时间。做一次,存储价值。

使用traceView找到您失去时间的位置并在那里进行改进。可悲的是,我不能给出具体的答案,因为我不知道你在循环中做了什么。

<小时/> Traceview Debugging