あなたの質問から、オーバーヘッドを節約するためにプリフェッチのオプションをすでに検討したかどうかはわかりませんでした。Core Data Documentationによると、これがプリフェッチ用のコードスニペットです。
NSManagedObjectContext *context = /* get the context */;
NSEntityDescription *employeeEntity = [NSEntityDescription
entityForName:@"Employee" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:employeeEntity];
[request setRelationshipKeyPathsForPrefetching:
[NSArray arrayWithObject:@"department"]];
このコードは従業員と部門の情報を取得しますが、Departmentが別のデータモデルにあるかどうかはわかりませんでしたが、NSPersistentStoreCoordinatorなどを使用して使用できます。
AppleのCoreDataパフォーマンスに関する推奨事項のもう1つの注意点は、
永続ストアへの各ラウンドトリップ(各フェッチ)では、ストアへのアクセスと、返されたオブジェクトの永続スタックへのマージの両方でオーバーヘッドが発生します。代わりに、必要なすべてのオブジェクトを返す単一のリクエストにそれらを組み合わせることができる場合は、複数のリクエストの実行を避ける必要があります。また、メモリ内にあるオブジェクトの数を最小限に抑えることもできます。
したがって、理想的には、2つの異なるコアデータモデルをマージできる場合、メモリとデータをフェッチするためのラウンドトリップを節約できます。