迁移后缓慢的核心数据性能

时间:2014-04-04 16:49:45

标签: ios objective-c core-data core-data-migration

我在执行轻量级迁移后遇到了一些奇怪的核心数据问题 - 我的iPad应用程序使用的是版本化数据模型,现在我只迁移到另一个数据模型只需一次更改:添加一个属性到实体。迁移过程没有任何问题,在完成流程后,我可以运行应用程序并迁移所有数据 - 唯一的问题是每个保存请求所需的时间比迁移前大约多10倍。

  • 我检查了迁移过程的核心数据日志 - 未列出错误
  • 核心数据日志(sql查询)在迁移之前和之后是相同的,只是慢得多
  • 我在外部sqlite查看器中打开了sqlite数据库 - 迁移前的查询时间与迁移后的查询时间相同。
  • 我在迁移后为持久存储添加了NSSQLiteManualVacuumOption,核心数据的性能稍微好一些,在迁移之前仍然慢得多。

知道这里可能出现什么问题吗?如何从迁移前恢复性能?

1 个答案:

答案 0 :(得分:0)

猜猜我找到了解决方案。我已经用非常基本的自定义迁移替换了自动轻量级迁移 - 只需要Xcode生成的模型映射 - 现在一切都像魅力一样。看起来自动轻量级迁移机制无法正确处理我的持久存储的模型和数据,这很奇怪,因为我没有收到任何警告或错误。 感谢大家的帮助。