Возможно, вы захотите взглянуть на Блокировка файлов и параллелизм в SQLite версии 3 .
В частности, я думаю, что вы заинтересованы в блокировке базы данных "ЭКСКЛЮЗИВ":
ЭКСКЛЮЗИВ
ЭКСКЛЮЗИВНАЯ блокировка необходима для записи в файл базы данных. Только одна ИСКЛЮЧИТЕЛЬНАЯ блокировка разрешена для файла, и никакие другие блокировки любого рода не могут сосуществовать с ИСКЛЮЧИТЕЛЬНОЙ блокировкой. Чтобы максимизировать параллелизм, SQLite работает, чтобы минимизировать время, в течение которого удерживаются ИСКЛЮЧИТЕЛЬНЫЕ блокировки.
Когда процесс или имеет эксклюзивную блокировку базы данных, все другие операции (чтение или запись) запрещены.
Что касается мультисессионного ASP.net, я бы предположил, что большую часть времени вы будете читать только из базы данных:
SHARED
База данных может быть прочитана, но не записана. Любое количество процессов может одновременно удерживать блокировки SHARED, поэтому одновременных считывателей может быть много. Но ни одному другому потоку или процессу не разрешается записывать в файл базы данных, пока активны одна или несколько блокировок SHARED.
Нет проблем со многими параллельными чтениями в базе данных SQLite; вы будете ограничены только основной ОС / файловой системой. Если вы выполняете много операций чтения и записи одновременно, вас может заинтересовать Соответствующее использование для SQLite , которое гласит:
SQLite обычно отлично работает в качестве движка базы данных для веб-сайтов с низким и средним трафиком (то есть 99,9% всех веб-сайтов). Объем веб-трафика, который может обрабатывать SQLite, зависит, конечно, от того, насколько интенсивно веб-сайт использует свою базу данных. Вообще говоря, любой сайт, который получает менее 100 тыс. Посещений в день, должен нормально работать с SQLite. Показатель 100K хитов в день - это консервативная оценка, а не жесткая верхняя граница Было продемонстрировано, что SQLite работает с 10-кратным объемом трафика.
Кроме того, в ответ на ваш комментарий к ответу Паскаля, если вы проверите вышеуказанную ссылку, вы увидите, что SQLite не делает различий между процессами или потоками, поскольку все блокировки зависят от файловой системы , а не от каких-либо блокировки на уровне программы.
Модуль пейджера эффективно контролирует доступ к отдельным потокам, или отдельным процессам, или к обоим. Повсюду в этом документе всякий раз, когда пишется слово «процесс», вы можете заменить слово «нить», не меняя истинности утверждения.