execute
er sandsynligvis ikke hurtigere end executeInsert
, kunne endda være langsommere (på ICS execute
kalder executeUpdateDelete
og kasserer returværdien). Du skal teste det, men jeg tvivler på, at du vil finde en reel forskel her.
AFAIK, Det er sikkert at bruge bare execute
hvis du ikke har brug for returværdier, men jeg vil ikke regne med, at det gælder i fremtidige Android-versioner. Dokumentationen siger nej, så måske vil nogen ændre adfærden for at afspejle det. Ældre implementeringer ser ud til at bruge execute
også (f.eks. 2.1 delete()
kildekode). Jelly Bean ændrede sig for eksempel meget bag kulisserne i SQLite, men det burde stadig fungere, når du bruger execute
Desuden, hvis du ikke bruger den samme SQLiteStatement
igen og igen, mens du bare binder argumenterne igen, er det nok ikke værd at bruge det. Byg en ny hver gang du kalder den almindelige insert
, update
, ... metoder er hurtige sammenlignet med den faktiske databaseadgang og den nødvendige disk I/O. Transaktioner på den anden side hjælper meget, da synkronisering af databasetilstand på disken for hver erklæring er meget langsom.