¿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.
- ¿Es posible acceder a la base de datos desde un servicio?
- Selección de valores NULL en Android SQLite
- ¿Cómo mostrar los datos de la base de datos en un RecyclerView con alto rendimiento?
- Cómo almacenar la contraseña SQLcipher localmente
- Prácticas recomendadas para sincronizar una base de datos SQL con un servidor remoto REST en Android
¿Hay alguna forma más rápida de realizar bucle en las filas de android y Sqlite?
Gracias,
- Obtención de base de datos SQLite y almacenamiento en una matriz de objetos
- ¿Cómo actualizar el esquema de la tabla después de una actualización de la aplicación en Android?
- Excepción Sqlite, error de sintaxis
- Obtener todas las filas de SQLite
- Android SQLiteException "no such table" durante la compilación: tabla INSERT INTO
- Sincronizar las bases de datos sqlite con mysql
- Androide. ActiveJDBC es posible?
- Leer datos de sqlite donde nombre de columna contiene espacios en android
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?