【问题标题】:SQLite iPad performance problems during mass insert and select批量插入和选择期间的 SQLite iPad 性能问题
【发布时间】:2013-06-28 05:35:24
【问题描述】:

我一直在开发一款 iPad 应用程序,除了 sqlite 性能外,一切都运行良好。现在,这个应用需要处理大量数据。

目前我有 2 个问题,其中一个是我在填充数据库时。当前的测试是 710 条记录,每条记录有 20 列,应用程序无法处理。这是主要问题,我不确定它是否会处理超过这个数量,甚至任何接近这个数量的地方,但这是我的目标。我的想法是;在 iPad 上,sqlite 甚至足以处理这么多数据。

第二个是从数据库中提取数据以填充表格视图时 - 每行需要 4 条记录,调用所有这些记录所花费的时间导致表格在滚动时略微滞后。我可以在单独的线程中处理查询吗?我尝试过类似的方法,但没有运气。

任何帮助都会令我惊叹,非常感谢。

【问题讨论】:

  • 您关于滚动的第二条评论让我认为这不是 sqlite 性能问题。使用“Time Profiler”工具对其进行分析,并发布使用时间最多的函数。
  • 插入是否在单个事务中? 710 行不算什么,但 710 事务很容易成为问题。
  • 我曾尝试运行 Time Profiler,但似乎没有什么特别突出的。您对问题所在有任何想法吗?
  • 我已经尝试用 BEGIN 和 COMMIT 查询包围我的插入查询,但没有任何变化。不过不确定我是否将它们放在正确的位置,我以前从未真正使用过它们,而且我使用的是SQLitePersistentObject,所以我不确定这是否会影响周围的陈述。

标签: ios performance ipad sqlite


【解决方案1】:

在我过去的项目经验中,我看到表上的索引减慢了插入速度。我在插入批量之前删除了索引,插入记录并重新创建索引 - 我看到了显着的差异。希望这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 2012-01-06
    • 2011-11-15
    相关资源
    最近更新 更多