ios - inserciones masivas con SQLite y CoreData
core-data insert (1)
Tengo un modelo CoreData que usa SQLite como tienda de persistencia. Necesito insertar un gran número de filas después de hacer algún procesamiento en cada registro. ¿Hay alguna forma de enviar esos comandos a SQLite
PRAGMA synchronous=OFF
PRAGMA count_changes=OFF
PRAGMA journal_mode=MEMORY
PRAGMA temp_store=MEMORY
Necesito acelerar el tiempo de procesamiento, ya que toma un par de horas completarlo.
Cualquier sugerencia será apreciada.
Gracias
Puede especificar los pragmas al agregar su tienda al coordinador de la tienda:
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];
(Adaptado de las características persistentes de la tienda )
Recomiendo leer también "Importar datos de manera eficiente".
Documentación relacionada: NSSQLitePragmasOption Importación de datos de manera eficiente