Базовый файл sqlite-wal получает MASSIVE (> 7 ГБ) при вставке ~ 5000 строк

m импортирую данные в Core Data и обнаруживаю, что операция сохранения идет медленно. С помощью симулятора iOS я наблюдаю, как растет и растет файл sqlite-wal, пока его размер не превышает 7 ГБ.

м импортирует около 5000 записей с около 10 полей. Это н'Т много данных.

Каждый объект, который яВставка m имеет отношение «один к одному» с различными другими объектами (всего 6 отношений). Все эти записи в совокупности равны менее чем 20 полям. Я не вижу ни изображений, ни двоичных данных, ни чего-либо, что могло бы оправдать, почему результирующий размер файла WAL такой огромный.

Я прочитал документы sqlite, описывающие файл wal, и я нене вижу, как это может произойти. Исходные данные нет более 50 МБ.

Мое приложение многопоточное. Я создаю контекст управляемого объекта в фоновом потоке, который выполняет импорт (создает и сохраняет основные объекты данных).

Не написав здесь код, кто-нибудь сталкивался с этим? У любого есть мысль о том, что я должен проверять. Код неЭто очень просто, и все части потребуют времени для ввода, поэтому давайте начнем с общих идей.

Я буду благодарен любому, кто заставит меня идти в правильном направлении.

Дополнительная информация: я

я отключил менеджер отмены для контекста, как я неэто не нужно (я думаю, что этоПо умолчанию на iOS s nil, но я явно установил его на nil).Я вызываю save только после того, как весь цикл завершен, и все управляемые объекты находятся в оперативной памяти (оперативная память возрастает до 100 МБ).Цикл и создание основных объектов данных занимает всего около 5 секунд. Сохранение занимает почти 3 минуты, так как записывает файл awl.

Ответы на вопрос(2)

Ваш ответ на вопрос