← На главную
При организации клиент-серверного режима работы 1С:Предприятие для компании средних масштабов (30–50 активных пользователей) ключевой задачей становится правильный выбор СУБД и архитектуры размещения серверов. Разберем детально особенности работы платформы с облачными базами данных вроде Azure SQL, а также проведем сравнительный анализ между классическим Microsoft SQL Server и свободно распространяемым PostgreSQL.
1. Совместимость 1С с Azure SQL и облачными PaaS-решениями
Рассмотрим распространенную идею выноса базы данных в облачную службу Azure SQL Database («база данных как сервис» / PaaS). Попытка подключить сервер 1С напрямую к такой облачной базе завершится ошибкой. Выясним технические причины:
- Требования к правам и системным базам: Серверу 1С:Предприятие для создания и обслуживания информационных баз требуются административные права уровня
sysadmin на экземпляре СУБД. Платформа активно обращается к системным базам master, tempdb и выполняет специфические низкоуровневые хранимые процедуры, недоступные в изолированной среде PaaS.
- Параметры сортировки (Collation): Платформа требует строго определенных параметров сортировки на уровне всего инстанса СУБД, что невозможно переопределить в управляемой базе данных без выделенного экземпляра.
- Сетевая задержка (RTT): Архитектура взаимодействия кластера серверов 1С и СУБД крайне чувствительна к скорости сетевого отклика. В процессе проведения одного документа платформа может генерировать сотни и тысячи последовательных мелких SQL-запросов. Если сервер приложений 1С находится в локальной сети, а СУБД — в удаленном облаке, пинг в 20–50 мс приведет к критическому падению скорости работы пользователей. Допустимое время отклика между сервером 1С и СУБД не должно превышать 1–2 мс.
Если планируется использование облака Microsoft Azure или аналогичного провайдера, единственным рабочим вариантом является модель IaaS (Infrastructure as a Service): аренда виртуальной машины, на которой одновременно разворачиваются и сервер приложений 1С, и полноценный экземпляр СУБД (MS SQL Server или PostgreSQL) внутри одного виртуального сетевого сегмента.
2. Сравнение Microsoft SQL Server и PostgreSQL для 1С
Проанализируем основные критерии выбора между двумя поддерживаемыми СУБД при нагрузке в 35 пользователей.
Microsoft SQL Server:
- Плюсы: Исторически максимальная оптимизация платформы 1С под механизмы MS SQL; удобная и единая среда администрирования (SQL Server Management Studio); обширная база готовых решений типовых проблем производительности; низкий порог входа для штатных системных администраторов Windows.
- Минусы: Высокая стоимость лицензирования. Для 35–50 пользователей требуется приобретение либо серверной лицензии с клиентскими лицензиями доступа (Server + CAL), либо лицензирование по физическим/виртуальным ядрам процессора (Core-based), что существенно увеличивает бюджет внедрения. Использование бесплатной редакции
MS SQL Server Express на 35 пользователей невозможно из-за жестких ограничений (лимит на объем базы в 10 ГБ и 1 ГБ оперативной памяти для буферного пула).
PostgreSQL:
- Плюсы: Полное отсутствие затрат на лицензии СУБД; отличная масштабируемость; возможность запуска на операционных системах семейства Linux (что исключает и затраты на клиентские лицензии Windows Server); встроенный версионный механизм блокировок (чтение не блокирует запись).
- Минусы: Необходимость использования специализированных сборок СУБД, адаптированных под 1С; необходимость понимания принципов обслуживания СУБД (регламентная очистка и обновление статистики).
3. Практические рекомендации по настройке PostgreSQL под 1С
Если для экономии бюджета выбран PostgreSQL, рассмотрим ключевые правила его корректной эксплуатации:
- Выбор дистрибутива: Не используйте «ванильный» дистрибутив с официального сайта PostgreSQL. Обязательно применяйте оптимизированные сборки (от Postgres Professional или с официального сайта обновлений 1С), содержащие патчи для корректной сортировки кириллицы и оптимизации работы со специфическими вложенными запросами платформы.
- Настройка конфигурационного файла
postgresql.conf:
- Скорректируйте лимиты планировщика: установите параметры
join_collapse_limit = 8 (или 10) и from_collapse_limit = 8, чтобы планировщик не зависал при расчете тяжелых планов с большим количеством левых соединений.
- Для быстрых твердотельных накопителей (SSD/NVMe) снизьте параметр
random_page_cost со стандартного 4.0 до диапазона 1.1 - 1.5, чтобы оптимизатор охотнее задействовал индексы.
- Настройте параметры фонового процесса
autovacuum: снизьте autovacuum_vacuum_scale_factor до 0.05 и autovacuum_analyze_scale_factor до 0.02, чтобы таблицы итогов и регистров очищались своевременно.
- Регламентные процедуры: Настройте регулярное выполнение регламентных заданий СУБД —
VACUUM FULL (в технологические окна) и ANALYZE для актуализации статистики распределения данных.
- Резервное копирование: Не ограничивайтесь только выгрузкой в файл
.dt. Настройте физическое резервное копирование базы данных на уровне СУБД с архивацией WAL-логов для возможности восстановления на любой момент времени (PITR).
4. Практические рекомендации по настройке MS SQL Server под 1С
При наличии бюджета на покупку лицензий MS SQL Server обратите внимание на следующие параметры настройки:
- Параллелизм (MAXDOP): Для транзакционной нагрузки 1С рекомендуется ограничить параллельное выполнение запросов, задав
Max Degree of Parallelism = 1, либо увеличив порог Cost Threshold for Parallelism до 30–50, чтобы избежать избыточных ожиданий синхронизации потоков CXPACKET.
- Настройка базы
tempdb: Разделите файл данных tempdb на несколько равных файлов (по количеству физических ядер сервера, но не более 8) и разместите их на самом производительном дисковом накопителе.
- Ограничение памяти: Задайте параметр
Max Server Memory, оставив операционной системе и серверу приложений 1С достаточный объем ОЗУ (минимум 4–8 ГБ для ОС и процессов rphost).
Итог
Для организации на 35 пользователей подключение напрямую к Azure SQL Database (PaaS) технически невозможно. Оптимальный выбор между MS SQL Server и PostgreSQL зависит от бюджета:
- Если бюджет позволяет приобрести лицензии MS SQL и Windows Server — это обеспечит быстрый старт с минимальными затратами времени на сопровождение.
- Если цель — максимальная оптимизация расходов без потери надежности, выбираем оптимизированную сборку PostgreSQL (желательно на базе Linux). При корректной базовой настройке параметров конфигурации производительность 1С на 35 пользователях будет сопоставима с MS SQL.