SORU
17 AĞUSTOS 2010, Salı


Android SQLite veritabanı: yavaş ekleme

Xml#parse(String, ContentHandler) kullanarak yapıyorum ki oldukça büyük bir XML dosyası (yaklaşık yüz kilobayt ve birkaç yüz kilobayt arasında değişen), ayrıştırmak gerekiyor. Şu anda 152KB dosya ile test ediyorum.

Ayrıştırma sırasında, aynı zamanda bir SQLite veritabanı çağrıları aşağıdaki gibi kullanarak veri eklemek: getWritableDatabase().insert(TABLE_NAME, "_id", values). Bu arada 152KB test dosyası yaklaşık 200 satır ekleme için aşağı gelir) için yaklaşık 80 saniye sürer.

Ben tüm ınsert deyimleri (ama her şeyi, ContentValues oluşturma gibi terk vb.) açıklama aynı dosya sadece 23 saniye sürer.

Veritabanı işlemleri bu kadar büyük bir yükü yoksa normal mi? Bu konuda bir şey yapabilir miyim?

CEVAP
17 AĞUSTOS 2010, Salı


Toplu ekler yapmak gerekir.

Sözde kod:

db.beginTransaction();
for (entry : listOfEntries) {
    db.insert(entry);
}
db.setTransactionSuccessful();
db.endTransaction();

Son derece uygulamalarım ekler hızı arttı.

Güncelleme:Android using inserthelper for faster insertions into sqlite database

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ★TheCrono Official Channel★

    ★TheCrono

    3 Mayıs 2014
  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • FRED

    FRED

    1 EKİM 2005