我有一个使用SQLite作为持久性存储的CoreData模型。对每个记录进行一些处理后,我需要插入大量行。有什么方法可以将这些命令发送到SQLite
PRAGMA synchronous=OFF
PRAGMA count_changes=OFF
PRAGMA journal_mode=MEMORY
PRAGMA temp_store=MEMORY
我需要加快处理时间,因为这需要几个小时才能完成。
任何提示将不胜感激。
谢谢
最佳答案
您可以在将商店添加到商店协调器时指定编译指示:
NSMutableDictionary *pragmaOptions = [NSMutableDictionary dictionary];
[pragmaOptions setObject:@"OFF" forKey:@"synchronous"];
[pragmaOptions setObject:@"OFF" forKey:@"count_changes"];
[pragmaOptions setObject:@"MEMORY" forKey:@"journal_mode"];
[pragmaOptions setObject:@"MEMORY" forKey:@"temp_store"];
NSDictionary *storeOptions =
[NSDictionary dictionaryWithObject:pragmaOptions forKey:NSSQLitePragmasOption];
NSPersistentStore *store;
NSError *error = nil;
store = [psc addPersistentStoreWithType:NSSQLiteStoreType
configuration: nil
URL:url
options:storeOptions
error:&error];
(改自Persistent Store Features)
我强烈建议您也阅读“有效导入数据”。
相关文件:
NSSQLitePragmasOption
Efficiently Importing Data