Я пытаюсь вставить около 2800 записей в базу данных sqlite, это занимает 150 секунд, что слишком много! Может кто-нибудь рассказать, как оптимизировать эту вставку.Вставка базы данных занимает слишком много времени android sqlite
public void createVariantEntry(ArrayList<ArrayList<String>> str) {
InsertHelper ih = new InsertHelper(Database, VARIANT_TABLE_NAME);
final int varid = ih.getColumnIndex(VARIANT_ID);
final int varmakeid = ih.getColumnIndex(VARIANT_MAKE_ID);
final int varmodid = ih.getColumnIndex(VARIANT_MODEL_ID);
final int varname = ih.getColumnIndex(VARIANT_NAME);
final int varposteddate = ih.getColumnIndex(VARIANT_POSTED_DATE);
for(int i=0;i<1253;i++)
{
ih.prepareForInsert();
ih.bind(varid, str.get(i).get(0));
ih.bind(varmakeid, str.get(i).get(1));
ih.bind(varmodid, str.get(i).get(2));
ih.bind(varname, str.get(i).get(3));
ih.bind(varposteddate, str.get(i).get(4));
ih.execute();
}
for(int i=1255;i<str.size();i++)
{
ih.prepareForInsert();
ih.bind(varid, str.get(i).get(0));
ih.bind(varmakeid, str.get(i).get(1));
ih.bind(varmodid, str.get(i).get(2));
ih.bind(varname, str.get(i).get(3));
ih.bind(varposteddate, str.get(i).get(4));
ih.execute();
}
ih.close();
}
Я действительно оставил комментарий к вашему предыдущему вопросу, связанному с этим, я считаю, что вы можете использовать некоторый StringBuilder для составления полной строки, чтобы вызвать меньше процесса вставки. –
Не могли бы вы рассказать о том, как сделать строковый построитель с помощью inserthelper – bharath
, а не о inserthelper, это нужно сделать с помощью rawQuery. –