SQLite - отличная маленькая база данных, но у меня проблема с ней в Windows. При первом запуске приложения выполнение запроса к базе данных объемом 100 МБ может занять до 50 секунд. Последующие загрузки занимают 10% этого времени.
После некоторых обсуждений в списке рассылки SQLite мне сказали
«Ошибка в Windows. Она активно предварительно кэширует большие файлы базы данных
- читает большими кусками файлов - чтобы все выглядело так, как будто программы
как Outlook лучше, чем они есть на самом деле. К сожалению, хотя
это ускоряет некоторые программы, заставляет других действовать вяло, потому что они
не имеют никакого контроля над тем, сколько читается, когда они просят всего несколько
байт файла. "
Эта проблема осложняется тем, что нет способа получить информацию о прогрессе, пока все это происходит из SQLite, поэтому мои пользователи считают, что что-то не работает. (Я мог бы показать фиктивный отчет о проделанной работе, но это действительно глупо для острого инструмента.)
Я считаю, что есть способ отключить предварительное кэширование в глобальном масштабе, но есть ли какой-то способ обойти это программно?