Я работаю над настольным приложением, которое использует SQLite для массовой вставки десятков тысяч строк в базу данных SQLite. Мне нужна помощь в оптимизации производительности объемной вставки. В настоящее время вставка 60 мегабайт данных в базу данных занимает до 50 секунд.
какие параметры строки подключения можно использовать для улучшения представление? Стоит ли менять размер буфера? Возможно ли это через параметр строки подключения? Есть ли другая строка подключения параметры для повышения производительности? Моя текущая строка подключения:
Data Source = Batch.db; Version = 3; Pooling = True; Max Pool Size = 10; Synchronous = off; FailIfMissing = True; Journal Mode = Off;
Я использую Dapper ORM. (построен ребятами из StackOverflow) Есть ли более быстрый способ массовой вставки в Sqlite, в .net?
System.Data.Sqlite используется для вставки в SQLite. Как насчет получения специальной скомпилированной версии sqlite, которая улучшает представление? Одна версия SQLite лучше другой? В настоящее время с использованием System.Data.SQLite из http://sqlite.phxsoftware.com
В настоящее время я оборачиваю вставки внутри транзакции, чтобы сделать их быстрее (это хорошее улучшение).
Я вставляю по одной таблице в 17 таблиц. Могу ли я распараллелить это на разных потоках и сделать это быстрее?
Текущая производительность. Это типично? Могу ли я сделать лучше?
Мне нравится SQLite, но я бы хотел сделать его немного быстрее. В настоящее время сохранение моих объектов в файл XML с использованием сериализации XML происходит быстрее, чем сохранение в базе данных SQLite, поэтому мой босс спрашивает: зачем переходить на SQLite? Или мне следует использовать MongoDB или другую объектную базу данных?