execute
provavelmente não é mais rápido que executeInsert
, pode até ser mais lento (no ICS execute
chama executeUpdateDelete
e descarta o valor de retorno). Você precisa testar isso, mas duvido que você encontre uma diferença real aqui. AFAIK, é seguro usar apenas
execute
se você não precisar de valores de retorno, mas eu não contaria com isso em futuras versões do Android. A documentação diz que não, então talvez alguém mude o comportamento para refletir isso. Implementações mais antigas parecem usar execute
também (por exemplo, 2.1 delete()
Código fonte). Jelly Bean, por exemplo, mudou muito nos bastidores do SQLite, mas ainda deve funcionar ao usar execute
Além disso, se você não usar o mesmo
SQLiteStatement
repetidamente enquanto apenas religando os argumentos, provavelmente não vale a pena usá-lo. Construindo um novo cada vez que você chama o insert
normal , update
, ... é rápido em comparação com o acesso real ao banco de dados e a E/S de disco necessária. As transações, por outro lado, ajudam muito, pois a sincronização do estado do banco de dados no disco para cada instrução é muito lenta.