Извращения SQLite
Сегодня сделал загрузку данных из текстовых файлов в базу данных. Базу данных создаю в памяти, потом к ней подключаю базу данных на диске, получаю как бы цельную базу данных. Загрузка базы данных представляет собой, двухступенчатую процедуру:
1. Циклическое чтение строки из текстового файла, разбор строки, запись данных в таблицу находящуюся в памяти.
2. Копирование информации из таблицы в памяти (MTemperLoad) в таблицу на диске (TemperGlobal), следующим запросом
INSERT INTO TemperGlobal (dolg, shir, temp, date) SELECT Mdolg, Mshir, Mtemp, Mdate FROM MTemperLoad
(Ранее процедура была одноступенчатой, чтение и сразу запись в таблицу на диске)
Такое решение позволило на порядки увеличить скорость загрузки, я сам поражен! Раньше данные из файла размером в 47000 строк грузились за время около 1,5 часов, сегодня удалось загрузить данные из файла размером в 80000 строк за 26 секунд!!!!!
P.S. видимо одновременное чтение из файла и запись в базу (на диске) сильно тормозит процесс.