0

我正在处理从文件中读取的 31000 条插入 SQL 语句,它需要超过 2 分钟才能完成..需要一些建议来提高性能..

这是代码:

while((line=reader.readLine())!=null){

            dbs.execSQL(line);
            k=(int)(i*0.0032);
            if(k%10==0){fdb.publishProgress(k);}
            i++;
}
4

3 回答 3

1

m 处理 31000 从文件读取的插入 SQL 语句,需要 2 多分钟才能完成.. 需要一些建议以提高性能..

BufferedReader如果您实际上不使用它来读取文件,那么您所能做的就是使用它。

SQLite如果您正在处理成百上千的插入、更新或删除语句,事务的使用将迅速提高速度性能,并且它还具有其他好处,例如安全性,并且没有失去数据库完整性的危险。

于 2013-08-24T10:24:05.347 回答
1

使用此处提到的技术进行批量插入是否可以在 SQLite 数据库中一次插入多行?

请注意,您一次只能在使用此技术的查询中插入 500 行。因此,在每个查询包含 500 条记录的查询中插入 31000 条记录。您可以在每次查询后发布进度,即每 500 次插入后。

于 2013-08-24T10:32:09.243 回答
0

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();
于 2013-08-24T10:26:38.340 回答