Да, асинхронная задача или в отдельном потоке - правильный путь, кроме того, вы можете указать БД, что запускаете транзакцию, которая значительно ускоряет процесс для больших вставок,
dh.getDb () BeginTransaction ();.
// вставить statemetns
dh.getDb () setTransactionSuccessful ();.
. Dh.getDb () endTransaction ();