¿Hay alguna forma más rápida de iterar a través de las filas de la consulta Sqlite?
Estoy usando las líneas siguientes para hacer bucle en las filas de una consulta de SQLite.
this.open(); // opening db Cursor cursor = db.rawQuery(strQuery, null); cursor.moveToFirst(); do { // do something } while (cursor.moveToNext()); cursor.close();
Cuando el número de filas es de 15000, se necesita mucho tiempo. Se tarda unos 4 segundos para el bloque vacío y cerca de 6 segundos para el bloque que tiene algunos códigos. Muestra que iterar en filas de esta manera lleva mucho tiempo.
- El comodín no funciona en SQLite
- Los ejemplos de ORMLite para Android no compilarán
- Android obteniendo cadenas de la base de datos sqlite a autocompletetextview
- Versión de SQLite utilizada en Android?
- PhoneGap / Apache Cordova propone una API para la base de datos cifrada SQLite
¿Hay alguna forma más rápida de realizar bucle en las filas de android y Sqlite?
Gracias,
- Atascado con diseño de SQL android utilizando SQLite y Group By
- Persistencia de entidades bidireccionales con Green-DAO
- Cómo eliminar una fila de una tabla en SQLite android?
- Cómo agregar la clave principal al tipo de datos de texto en android sqlite?
- Sqlite restricción error código de error
- ¿Cómo puedo mantener mi base de datos en una tarjeta SD y utilizar ORMLite?
- Cómo cambiar el modo de diario de base de datos
- Duplicar la base de datos Android de otra aplicación?
Optimizar lo que haces dentro del bucle es la única manera de mejorar la velocidad de toda la operación. Por ejemplo, si estás haciendo llamadas getColumnIndex
en cada iteración, perderás tiempo precioso. Hágalo una vez, almacene el valor.
Utilice traceView
para localizar dónde está perdiendo tiempo y mejorar allí. Lamentablemente no puedo dar una respuesta concreta, ya que no sé lo que estás haciendo dentro del bucle.
Depuración de Traceview
- Android VideoView no se reproduce Orientación de retrato
- ¿Se mantiene una alarma de AlarmManager si la aplicación es eliminada por el sistema debido a la falta de memoria?