18 Out, 2013 21:23

Melhorando o desempenho do banco de dados do seu aplicativo Android

Para quem utiliza SQLiteDatabase para fazer ações de incluir, alterar e excluir registros no banco de dados, sabe que algumas operações demandam tempo e um custo de processamento alto, que na maioria das vezes são cruciais para o bom desempenho do aplicativo. Para melhorar esse desempenho, podemos utilizar transaction, que é bem simples e fácil de usar.

Para mostrar como fazer, segue o código do método de inserir uma lista de cinemas, por exemplo, sem transaction:

public void incluir(List<Cinema> cinemas) {
    for (Cinema cinema : cinemas) {
        ContentValues values = preencherContentValues(cinema);
        db.insert(CinemaEntry.TABLE_NAME, "", values);
    }
}

Fazendo um teste com o método acima, a inclusão de 45 cinemas demorou 1510 milissegundos, ou seja, mais de 1 segundo.

Agora, utilizando transaction, o método fica assim:

db.beginTransaction();
try {
    for (Cinema cinema : cinemas) {
        ContentValues values = preencherContentValues(cinema);
        db.insert(CinemaEntry.TABLE_NAME, "", values);
    }
    db.setTransactionSuccessful();
} finally {
    db.endTransaction();
}

Realizando novamente o mesmo teste, a inclusão demorou 185 milissegundos!!! Sem a transaction, o tempo é quase 9 vezes maior. É uma economia de tempo muito grande para o seu aplicativo.

Para saber um pouco mais sobre transaction e demais métodos de SQLiteDatabase, acesse aqui.

Até a próxima!

Ao navegar neste site, você consente o uso de cookies nossos e de terceiros, que coletam informações anônimas e são essenciais para melhorar sua experiência em nosso site.