Můj odhad s tím, že nejsem statistik, je, že režie je něco jako 8–12 % pomalejší.
Výsledky jsem získal pomocí 3 konstrukčně podobné a jednoduché tabulky se dvěma sloupci TEXT, počínaje 10 000 vložky pro každou tabulku, opakujte to 5krát na 4 zařízeních.
Tabulka 1 (sloupec Dflt) byl vytvořen pouze se dvěma TEXTovými sloupci (tedy s využitím výchozího ROWID).
Tabulka 2 (sloupec AI) byl vytvořen pomocí _id INTEGER PRIMARY KEY AUTOINCREMENT
kromě dvou sloupců TEXT.
Tabulka 3 (žádný sloupec AI) byl vytvořen pomocí _id INTEGER PRIMARY KEY
kromě dvou sloupců TEXT.
Takže Tabulka 2 používá trochu odlišný algoritmus výběru ROWID pro vložky.
Čtyři použitá zařízení byla:-
-
(1) Zařízení s emulací Genymotion (Custom Tablet – 5.1.0 – API 22 – 1536x2048)
-
(2) 10" tablet Onix (AT101-1116)
-
(3) HTC 1 M8 (HTC_0PKV1)
-
(4) Tablet Lenovo A10-30 (Lenovo TB2-X30F)
Výsledky, které jsem získal, byly:-
Výsledky jsou příznivější, když je vše spuštěno pouze v jedné transakci (tj. beginTransaction();
před jakékoli vložení pomocí setTransactionSuccessful();
a endTransaction();
po všech přílohách (pro všechny tabulky tj. celých 150 000 příloh), např. :-
Porovnání těchto dvou tabulek zdůrazňuje výhody, které může mít používání transakcí z hlediska výkonu.