gpt4 book ai didi

android - 如何有效地使用 ormlite 在 android sqlite 数据库中插入批量数据

转载 作者:IT王子 更新时间:2023-10-29 06:27:52 25 4
gpt4 key购买 nike

我试图一次在 android sqlite 数据库中插入 100000 条记录。我正在使用以下两种不同的方法。

 private void bulkInsertDataBySavePoint(final List<User> users) {
log.debug("bulkInsertDataBySavePoint()");
DatabaseConnection conn = null;
Savepoint savepoint = null;
try {
conn = userDao.startThreadConnection();
savepoint = conn.setSavePoint("bulk_insert");
for (User user : users) {
userDao.create(user);
}
} catch (SQLException e) {
log.error("Something went wrong in bulk Insert", e);
} finally {
if (conn != null) {
try {
conn.commit(savepoint);
userDao.endThreadConnection(conn);
} catch (SQLException e) {
log.error("Something went wrong in bulk Insert", e);
}
}
}
}

   private void bulkInsertDataByCallBatchTasks(final List<User> users) {
log.debug("bulkInsertDataByCallBatchTasks()");
try {
userDao.callBatchTasks(new Callable<Void>() {
@Override
public Void call() throws Exception {
for (User user : users) {
userDao.create(user);
}
return null;
}
});
} catch (Exception e) {
e.printStackTrace();
}
}

这两种方法都很好。平均而言,它们需要 140 秒并占用 60-65% 的 CPU,我认为这不太好。

我的想法是,我必须使用一个将提供 json 数据的 api。我必须解析该 json 数据,然后插入到 sqlite 数据库中以供离线使用。

我正在寻找解决此问题的有效方法。

有什么想法吗?

最佳答案

I'm trying to insert 100000 records in android sqlite database at a time... On average they take 140 seconds and take 60-65% CPU which is not ok in my opinion.

很遗憾,我没有一个简单的答案给你。您可能必须直接使用原始 SQL 执行此类插入,以在有限的 Android CPU 上实现更快的性能。插入数据后,您可以转向 ORMLite 以更快地查询或操作数据。

关于android - 如何有效地使用 ormlite 在 android sqlite 数据库中插入批量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17456321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com