Моята оценка, като отбелязвам, че не съм статистик, е, че режийните разходи са нещо като 8-12% по-бавно.
Получих резултатите с помощта на 3 структурно подобни и проститаблици с две колони TEXT, работещи 10 000 вмъквания за всяка таблица, повтаряйки това 5 пъти на 4 устройства.
Таблица 1 (Dflt колона) беше създаден само с двете колони TEXT (като по този начин се използва ROWID по подразбиране).
Таблица 2 (колона AI) беше създаден с помощта на _id INTEGER PRIMARY KEY AUTOINCREMENT
в допълнение към двете колони TEXT.
Таблица 3 (Без колона AI) беше създаден с помощта на _id INTEGER PRIMARY KEY
в допълнение към двете колони TEXT.
И така, Таблица 2 използва малко по-различен алгоритъм за избор на ROWID за вложки.
Четирите използвани устройства бяха:-
-
(1) Устройство, емулирано на Genymotion (Персонализиран таблет - 5.1.0 - API 22 - 1536x2048)
-
(2) 10-инчова таблетка Onix (AT101-1116)
-
(3) HTC 1 M8 (HTC_0PKV1)
-
(4) Таблет Lenevo A10-30 (Lenovo TB2-X30F)
Резултатите, които получих бяха:-
Резултатите са по-благоприятни, когато всичко се изпълнява само в 1 транзакция (т.е. beginTransaction();
преди всякакви вмъквания, с setTransactionSuccessful();
и endTransaction();
след всички вмъквания (за всички таблици, т.е. целите 150 000 вмъквания), напр. :-
Сравнението на двете таблици подчертава ползите, които използването на транзакции може да има за ефективността.