I have ran into the exact same situation. First I was using DatabaseUtil.insertHelper, and it was taking me +30 seconds for 600 entries.
I did a bit more digging and found out that every row i'm inserting is being committed, which is extremely expensive.
To solve this, I switched to ORMLite, with the insertAll method:
/**
* Inserts multiple objects into the database quickly by committing them all at once
*
* @param objects The objects to insert
*/
public void insertAll(final T[] objects) {
try {
dao.callBatchTasks(new Callable<Void>() {
@Override
public Void call() throws Exception {
for (T object : objects) {
dao.create(object);
}
return null;
}
});
} catch (Exception e) {
AdbLogger.error("Error inserting new " + className + "s in the database");
}
}
The idea here is that they do the insert of the array of object, then at the end only do one big commit. After this switch the insert became almost instantanious.