Уважаемый коллега-разработчик, по какой-то причине обновление для 1720 записей занимает около 15 секунд на SSD-диске (особенно при включенной обрезке).
Я изменил настройки sqlite, используя следующий документ (который работает хорошо): http://web.utk.edu/~jplyon/sqlite/SQLite_optimization_FAQ.html
У меня есть следующий набор PRAGMA для оптимизации производительности, и я использую транзакции для всего набора обновлений.
sqlite3_exec(database, "PRAGMA cache_size=500000;", nil, nil, nil);
sqlite3_exec(database, "PRAGMA synchronous=OFF", nil, nil, nil);
sqlite3_exec(database, "PRAGMA count_changes=OFF", nil, nil, nil);
sqlite3_exec(database, "PRAGMA temp_store=MEMORY", nil, nil, nil);
Кажется, что SSD делает слишком много (например, удаляет блоки и т. д.), что заставляет его блокироваться на 15 секунд всего за 1720 простых обновлений записей.
Как ни странно: вставка 2500 записей происходит практически мгновенно. Можете ли вы помочь мне и дать мне несколько советов, как это исправить?