Perkiraan saya, dengan memperhatikan bahwa saya bukan ahli statistik, adalah bahwa biayanya kira-kira 8-12% lebih lambat.
Saya memperoleh hasil menggunakan 3 tabel yang mirip secara struktural dan sederhana dengan dua kolom TEXT, menjalankan 10.000 sisipan per setiap tabel, ulangi ini 5 kali di 4 perangkat.
Tabel 1 (kolom Dflt) dibuat hanya dengan dua Kolom TEXT (sehingga memanfaatkan ROWID default).
Tabel 2 (kolom AI) dibuat menggunakan _id INTEGER PRIMARY KEY AUTOINCREMENT
selain dua kolom TEXT.
Tabel 3 (Tidak ada kolom AI) dibuat menggunakan _id INTEGER PRIMARY KEY
selain dua kolom TEXT.
Jadi Tabel 2 menggunakan algoritma pemilihan ROWID yang sedikit berbeda untuk sisipan.
Empat perangkat yang digunakan adalah :-
-
(1) Perangkat yang diemulasi Genymotion (Tablet Khusus - 5.1.0 - API 22 - 1536x2048)
-
(2) Tablet Onix 10" (AT101-1116)
-
(3) HTC 1 M8 (HTC_0PKV1)
-
(4) Tablet Lenevo A10-30 (Lenovo TB2-X30F)
Hasil yang saya peroleh adalah :-
Hasil lebih baik ketika semuanya dijalankan hanya dalam 1 transaksi (yaitu beginTransaction();
sebelum sisipan apa pun, dengan setTransactionSuccessful();
dan endTransaction();
setelah semua sisipan (untuk semua tabel yaitu seluruh 150.000 sisipan), mis. :-
Perbandingan kedua tabel, menyoroti manfaat penggunaan transaksi terhadap kinerja.