Добавить в корзинуПозвонить
Найти в Дзене

Файловая информационная база 1С:Предприятие

Обсуждение показало, что многие коллеги имеют превратное представление о файловой информационной базе 1С, считая ее пережитком прошлого и вообще сосредоточением всех возможных недостатков платформы. Однако это далеко не так, и в данной заметке мы расскажем почему. Что собой представляет файловая база? Это собственный формат базы данных от 1С, который всю необходимую информацию хранит в одном единственном файле 1Cv8.1CD, кроме него в папке с базой находятся вспомогательные файлы, но никакой ценности они не несут, все нужное сосредоточено в единственном файле. Файл имеет страничную структуру и может содержать 2^32-1 страницу размером 4 КБ, что ограничивает общий объем файла базы размеров в 16 ТБ. При этом, в силу внутреннего устройства действует дополнительное ограничение в размере 4 ГБ на размер внутренней таблицы файла. Начиная с версии 8.3.8 можно менять размер страницы с 4 КБ до 64 КБ, что позволяет увеличить лимит размера внутренней таблицы до 6 ГБ. Что касается скорости работы

Файловая информационная база 1С:Предприятие

Обсуждение показало, что многие коллеги имеют превратное представление о файловой информационной базе 1С, считая ее пережитком прошлого и вообще сосредоточением всех возможных недостатков платформы.

Однако это далеко не так, и в данной заметке мы расскажем почему.

Что собой представляет файловая база? Это собственный формат базы данных от 1С, который всю необходимую информацию хранит в одном единственном файле 1Cv8.1CD, кроме него в папке с базой находятся вспомогательные файлы, но никакой ценности они не несут, все нужное сосредоточено в единственном файле.

Файл имеет страничную структуру и может содержать 2^32-1 страницу размером 4 КБ, что ограничивает общий объем файла базы размеров в 16 ТБ. При этом, в силу внутреннего устройства действует дополнительное ограничение в размере 4 ГБ на размер внутренней таблицы файла.

Начиная с версии 8.3.8 можно менять размер страницы с 4 КБ до 64 КБ, что позволяет увеличить лимит размера внутренней таблицы до 6 ГБ.

Что касается скорости работы, то при прочих равных файловая база всегда работает быстрее клиент-серверной, быстрее в несколько раз. В этом может легко убедиться каждый при помощи теста Гилева. В результате нашего экспресс-теста была получена трехкратная разница.

Как это можно использовать? Если у вас есть тяжелые задачи, требующие преимущественно однопоточного, монопольного доступа, то вы можете радикально их ускорить, выгрузив клиент-серверную базу в файловую, выполнив необходимые операции и загрузив обратно.

А еще вы можете перенести такую базу с сервера на пользовательский ПК с более высокой производительностью на ядро и еще более ускорив выполнение нужных операций.

Поэтому, если вы используете базу единолично, то файловый режим – это то, что доктор прописал. И именно в файловый режим мы всегда выгружаем тестовые базы и базы для разработки, несмотря на наличие севера. Потому что быстрее, сильно быстрее.

Но есть и иная сторона медали, общий доступ к файловой базе осуществляется путем разделения доступа к файлу базы и первое с чем вы столкнетесь – это блокировки. При совместной работе производительность файлового варианта резко падает, поэтому общие рекомендации – это не более 3-5 пользователей.

Второе ограничение – это размер базы, по мере роста которой работа в многопользовательском файловом режиме будет все менее комфортной. Это связано с тем, что по сети приходится гонять большой объем данных, что упирается в производительность дисковой и сетевой подсистем.

В эпоху жестких дисков таким порогом был размер примерно в 4 ГБ, в эпоху SSD более-менее комфортно жить в файловой можно до 10-12 ГБ.

Но здесь есть еще один «чит» - публикация на веб-сервере. В таком режиме работы модуль расширения веб-сервера выполняет серверный код, а тонкий клиент или браузер – клиентскую часть кода.

При этом есть одна тонкость, модуль расширения веб-сервера в файловом режиме однопоточен. Т.е. все запросы клиентов ставятся в единую очередь. При этом вопрос блокировок отпадает сам собой.

Но очередь – скажете вы. И что, что очередь? Еще раз смотрим на разницу в производительности и понимаем, что до определенного предела производительность файлового режима через веб-сервер позволяет вообще не задумываться об этом моменте. Если очередь обслуживается быстро, то не все равно сколько вас там в этой очереди?

Поэтому сегодня даже в одной сети есть смысл использовать файловую базу сугубо через веб-сервер. Это позволяет закрыть потребности 5-10 и даже 15 пользователей простым пользовательским железом, в этом плане вне конкуренции процессоры AMD Ryzen 5/7/9.

Стимулами для перехода на клиент-серверные версии становится рост количества пользователей, когда однопоточный модуль не успевает обрабатывать очередь, рост объема базы, а также необходимость выполнения регламентных заданий и обменов в автоматическом режиме, без активных сеансов пользователя.

Но это уже совсем другой уровень бизнеса и инфраструктуры, да и вообще совсем другая история.