Mijn schatting, aangezien ik geen statisticus ben, is dat de overhead ongeveer 8-12% is langzamer.
Ik heb de resultaten verkregen met 3 structureel vergelijkbare en eenvoudige tabellen met twee TEXT-kolommen, met 10,000 voegt per tafel in, dit 5 keer herhalen op 4 apparaten.
Tabel 1 (Dflt-kolom) is gemaakt met alleen de twee TEXT-kolommen (waardoor de standaard ROWID wordt gebruikt).
Tabel 2 (AI-kolom) is gemaakt met _id INTEGER PRIMARY KEY AUTOINCREMENT
naast de twee TEXT-kolommen.
Tabel 3 (Geen AI-kolom) is gemaakt met _id INTEGER PRIMARY KEY
naast de twee TEXT-kolommen.
Dus Tabel 2 gebruikt het iets ander ROWID-selectiealgoritme voor inzetstukken.
De vier gebruikte apparaten waren:-
-
(1) Een door Genymotion geëmuleerd apparaat (aangepaste tablet - 5.1.0 - API 22 - 1536x2048)
-
(2) Een Onix 10"-tablet (AT101-1116)
-
(3) Een HTC 1 M8 (HTC_0PKV1)
-
(4) Een Lenevo A10-30-tablet (Lenovo TB2-X30F)
De resultaten die ik behaalde waren:-
De resultaten zijn gunstiger wanneer alles in slechts 1 transactie wordt uitgevoerd (d.w.z. beginTransaction();
vóór eventuele invoegingen, met setTransactionSuccessful();
en endTransaction();
na alle inserts (voor alle tabellen, d.w.z. de volledige 150.000 inserts), b.v. :-
Vergelijking van de twee tabellen, laat de voordelen zien die het gebruik van transacties kan hebben op prestaties.