核心数据模型版本迁移

时间:2011-06-14 13:56:53

标签: iphone sql core-data sqlite migration

我有一个成功迁移的模型,但需要15-20秒。 (显然,这不是必须在启动时作为后台任务完成,否则我的应用程序将会超时。)

20秒的延迟,无论在何处完成,都是糟糕的用户体验。我一直在关注核心数据迁移的SQL输出,看看主要的瓶颈在哪里,我发现了这个有趣的声明

UPDATE ZSIZE SET Z_ENT = ( CASE WHEN Z_ENT = 9 THEN 10 ELSE Z_ENT END ) WHERE Z_ENT IN (9)

这句话似乎需要5秒钟(我的数据库中的其他表还有其他表格。)

当然,由于语句末尾的IN (9),它不需要在表中每行运行一个case语句吗?

为什么CoreData不会仅运行此语句?

UPDATE ZSIZE SET Z_ENT=10 WHERE Z_ENT = 9

对于奖励积分,我们非常感谢有关优化coredata迁移的任何其他提示/提示!

1 个答案:

答案 0 :(得分:0)

也许我对问题“Example or explanation of Core Data Migration with multiple passes?”的回答很有用。它是关于在多次传递中进行迁移,以便向用户显示某种进展。