首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android提升SQL处理速度

Android提升SQL处理速度
EN

Stack Overflow用户
提问于 2013-08-24 18:17:46
回答 3查看 76关注 0票数 0

我正在处理从文件读取的31000个Insert SQL语句,并且需要超过2分钟才能完成。在提高性能方面需要一些建议。

代码如下:

代码语言:javascript
复制
while((line=reader.readLine())!=null){

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

回答 3

Stack Overflow用户

发布于 2013-08-24 18:24:05

m正在处理31000条Insert SQL语句,正在从文件中读取数据,完成此操作需要2分钟以上。在提高性能方面需要一些建议。

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

关于SQLite,如果您正在处理成百上千的insert、update或delete语句,使用transaction将迅速提高速度性能,而且它还具有其他好处,如安全性,并且没有丢失数据库完整性的危险。

票数 1
EN

Stack Overflow用户

发布于 2013-08-24 18:32:09

使用这里提到的Is it possible to insert multiple rows at a time in an SQLite database?技术进行批量插入

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

票数 1
EN

Stack Overflow用户

发布于 2013-08-24 18:26:38

DO此技巧将会起作用;

代码语言:javascript
复制
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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18417456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档