Очевидный ответ - перейти на MySQL, однако это не так просто.
В частности, вы говорите, что ваша база данных доступна только для чтения.В этом случае SQLite вообще не нужно будет использовать транзакции или напрямую блокировать файл базы данных.
Это огромное преимущество, потому что именно физическая блокировка файла базы данных вызывает большие проблемы с масштабируемостью для многопользовательского доступа к базе данных SQLite
(Но даже при чтении и записиДокументы SQLite говорят, что он отлично работает для сайтов с 100 000 посещений в день.
Похоже, что вы собираетесь использовать единую централизованную службу Windows для обслуживания всех клиентов.В этом случае весь доступ к базе данных будет сериализован этой службой, и поэтому в SQLite никогда не будет двух одновременных соединений, конкурирующих за доступ.В этом случае SQLite не будет узким местом, служба будет.
Если служба, конечно, многопоточная, то да, возможен параллельный доступ к SQLite, но, опять же, только для чтения, поэтому проблема по-прежнему не актуальна.
Кроме того,ваши требования к шифрованию базы данных и 4 ежемесячных обменов гораздо проще удовлетворить с SQLite, чем MySQL.
Вы читали этот предыдущий вопрос в StackOverflow?Кайл Кронин дает интересный комментарий о своем опыте с течением времени и в конечном итоге говорит, что SQLite - это хороший вариант для многопользовательских веб-сайтов меньшего объема.
Надеюсь, я дал пищу для размышлений.