Ich schätze, dass ich kein Statistiker bin, dass der Overhead etwa 8–12 % beträgt langsamer.
Ich habe die Ergebnisse mit 3 erhalten strukturell ähnliche und einfache Tabellen mit zwei TEXT-Spalten, laufend 10.000 fügt pro Tisch ein und wiederholt dies 5 Mal auf 4 Geräten.
Tabelle 1 (Spalte Dflt) wurde nur mit den beiden TEXT-Spalten erstellt (wobei die Standard-ROWID verwendet wird).
Tabelle 2 (AI-Spalte) wurde mit _id INTEGER PRIMARY KEY AUTOINCREMENT
erstellt zusätzlich zu den beiden TEXT-Spalten.
Tabelle 3 (Keine AI-Spalte) wurde mit _id INTEGER PRIMARY KEY
erstellt zusätzlich zu den beiden TEXT-Spalten.
Also Tabelle 2 verwendet den etwas anderen ROWID-Auswahlalgorithmus für Beilagen.
Die vier verwendeten Geräte waren:-
-
(1) Ein von Genymotion emuliertes Gerät (Custom Tablet – 5.1.0 – API 22 – 1536 x 2048)
-
(2) Ein Onix-10-Zoll-Tablet (AT101-1116)
-
(3) Ein HTC 1 M8 (HTC_0PKV1)
-
(4) Ein Tablet Lenevo A10-30 (Lenovo TB2-X30F)
Die Ergebnisse, die ich erhielt, waren:-
Die Ergebnisse sind günstiger, wenn alles in nur einer Transaktion ausgeführt wird (z. B. beginTransaction();
). vor Einfügungen mit setTransactionSuccessful();
und endTransaction();
nach allen Einsätzen (für alle Tabellen also die gesamten 150.000 Einsätze), z.B. :-
Der Vergleich der beiden Tabellen hebt die Vorteile hervor, die die Verwendung von Transaktionen für die Leistung haben kann.