Saltar al contenido

Rendimiento de SQLite de Android

Estate atento ya que en este escrito vas a hallar la solución que buscas.Esta crónica fue probado por nuestros especialistas para asegurar la calidad y veracidad de nuestro contenido.

Solución:

Usar SQLite transaction para acelerar

Usar COMENZAR TRANSACCIÓN & FINALIZAR TRANSACCIÓN para la optimización de SQLite

Cada instrucción SQL está incluida en un nuevo bloque de transacciones por el tiempo de ejecución de SQLite, de forma predeterminada. Entonces, cuando realiza una operación básica de base de datos como INSERTARse creará un bloque de transacción y se envolverá a su alrededor.

Permitir que el tiempo de ejecución de SQLite administre la transacción por usted es recomendable solo si su rutina realiza solo una operación de base de datos en un conjunto de datos. Sin embargo, si está realizando numerosas operaciones de base de datos (digamos INSERTAR dentro del ciclo for), esto se vuelve muy costoso, ya que requiere reabrir, escribir y cerrar el archivo diario para cada declaración. puede referirse

  1. Base de datos Android SQLite: inserción lenta

  2. Android SQLite Transaction Example with INSERT Prepared Statement

  3. http://www.techrepublic.com/blog/software-engineer/turbocharge-your-sqlite-inserts-on-android/

  4. http://www.android-app-market.com/sqlite-optimization-in-android-programming-sqlite-optimization-in-android-apps.html

Puedes usar Sql actas en Android así. Es mejor insertar varias filas en la base de datos en lotes más grandes que hacer una sola confirmación (escribir en el archivo de datos SQLlite, que es muy lento) para cada fila insertada.

public void insert(List students)

    SQLiteDatabase db = sh.getWritableDatabase();
    ContentValues cv = new ContentValues();

    db.beginTransaction();

    try 
        for (Student s : students) 
            cv.put(StudentHelper.FIRSTNAME,s.getFirstName());
            cv.put(StudentHelper.LASTNAME,s.getLastName());
            cv.put(StudentHelper.ADDRESS,s.getAddress());
            cv.put(StudentHelper.GPA,s.getGpa());

            db.insertOrThrow(StudentHelper.TABLE_NAME, null, cv)
        
        db.setTransactionSuccessful();
     finally 
        db.endTransaction();
    

Si tienes algún pregunta o capacidad de prosperar nuestro reseña puedes realizar una acotación y con gusto lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *