Я работаю над настольным приложением, которое использует SQLite для массового ввода десятков тысяч строк в базу данных SQLite. Я хотел бы помочь оптимизировать производительность объемной вставки. В настоящее время занимает до 50 секунд, чтобы вставить в базу данных 60 мегабайт.
-
какие параметры строки подключения можно использовать для улучшения представление? Должен ли я изменить размер буфера? Возможно ли это с помощью параметр строки подключения? Есть ли другая строка подключения параметры для повышения производительности? Моя текущая строка подключения:
Источник данных = Batch.db; Версия = 3; Пул = Истина; Макс. пул Размер = 10; Синхронный = выкл. FailIfMissing = True; Режим журнала = Выкл.
-
Я использую Dapper ORM. (созданный ребятами из StackOverflow) Есть ли более быстрый способ для массовой вставки в Sqlite, в .net?
-
System.Data.Sqlite используется для вставки в SQLite. Как получить специальную скомпилированную версию sqlite, которая улучшает представление? Является ли одна версия SQLite лучше другой? В данный момент используя System.Data.SQLite от http://sqlite.phxsoftware.com
-
В настоящее время я переношу вставки внутри транзакции, чтобы сделать их быстрее (это сделало хорошее улучшение).
-
Я вставляю в одну таблицу за один раз в 17 таблиц. Могу ли я распараллелить это на разных потоках и сделать это быстрее?
Текущая производительность. Это типично? Могу ли я лучше?
- 55 000 строк в таблицу с 19 столбцами: 2,25 с для вставки (24 тыс. вставки/сек)
- 10 000 строк в таблицу с 63 столбцами: 2,74 с для вставки (3,7 тыс./сек)
Мне нравится SQLite, но я хотел бы сделать это немного быстрее. В настоящее время сохранение моих объектов в XML файле с использованием сериализации XML происходит быстрее, чем сохранение базы данных SQLite, поэтому мой босс спрашивает: зачем переключиться на SQLite? Или я должен использовать MongoDB или какую-либо другую базу данных объектов?