我正在处理从文件中读取的 31000 条插入 SQL 语句,它需要超过 2 分钟才能完成..需要一些建议来提高性能..
这是代码:
while((line=reader.readLine())!=null){
dbs.execSQL(line);
k=(int)(i*0.0032);
if(k%10==0){fdb.publishProgress(k);}
i++;
}
m 处理 31000 从文件读取的插入 SQL 语句,需要 2 多分钟才能完成.. 需要一些建议以提高性能..
BufferedReader
如果您实际上不使用它来读取文件,那么您所能做的就是使用它。
SQLite
如果您正在处理成百上千的插入、更新或删除语句,事务的使用将迅速提高速度性能,并且它还具有其他好处,例如安全性,并且没有失去数据库完整性的危险。
使用此处提到的技术进行批量插入是否可以在 SQLite 数据库中一次插入多行?
请注意,您一次只能在使用此技术的查询中插入 500 行。因此,在每个查询包含 500 条记录的查询中插入 31000 条记录。您可以在每次查询后发布进度,即每 500 次插入后。
DO this trick will work;
dbs.beginTransaction();
while((line=reader.readLine())!=null){
dbs.execSQL(line);
k=(int)(i*0.0032);
if(k%10==0){fdb.publishProgress(k);}
i++;
}
dbs.setTransactionSuccessful();
dbs.endTransaction();