1С и СУБД: PostgreSQL 9.6/10 против MS SQL 2016 - батл, нагрузочное тестирование, DT и УПП

29.09.26

База данных - Инструменты администратора БД

Материал для архитектора и администратора 1С, который выбирает СУБД под 8.3. Внутри условия батла PostgreSQL и MS SQL на одном железе, цифры по загрузке DT, контекст Linux-контура и способ повторить замеры через LOG и счётчики СУБД.

Для 1С:Предприятие 8.3 выбор между PostgreSQL и MS SQL редко решают слухами с форумов - нужны батл и нагрузочное тестирование. Ниже разобрано сравнение PostgreSQL 9.6 и 10 с MS SQL Server 2016 на одном железе под Windows: загрузка DT и тяжёлая операция типовой УПП. Приведены условия прогона, цифры по DT, контекст промышленного контура на Linux и то, что смотреть в технологическом журнале и счётчиках СУБД, если захотите повторить методику.

 

Зачем снова сравнивать PostgreSQL и MS SQL

MS SQL долго оставался привычной СУБД для установок 1С: лицензии понятны, админы обучены, типовые конфигурации проходят регрессию под эту связку. PostgreSQL в экосистеме 1С вырос из экономики масштаба: сотни информационных баз, терабайты данных, резервные копии с реплик, поднятие тестовой базы без отдельного полного файла бэкапа. После перевода сотен баз на PostgreSQL под Linux легко переоценить субъективный комфорт и недооценить разрыв в отдельных сценариях.

Батл задуман как контрольный эксперимент: один релиз платформы, одно железо, одинаково ограниченный параллелизм на обеих СУБД, чтобы отделить свойства движка от привычки. Экономику и стоимость владения в статье в цифрах не моделируем, но именно они толкают к PostgreSQL; батл отвечает на другой вопрос - где MS SQL всё ещё быстрее при равных настройках.

 

Production-опыт: Windows, Linux и репликации

Старт внедрения шёл через PostgreSQL на Windows: порядка пяти баз суммарно около 100 ГБ. Такой шаг снижает риск одновременной смены СУБД и ОС, но не повторяет целевую архитектуру 2020R09;х. На Windows всплыла проблема файлов статистики PostgreSQL: сервер часто переименовывает служебный файл статистики, а NTFS блокирует rename, пока файл читают. СУБД переходит на устаревшую статистику, а транзакции периодически замирают примерно на 15 секунд. Симптомы воспроизводились до эскалации в Postgres Pro и подтверждения дефекта со стороны вендора.

Дальнейший рост ушёл на Linux: сейчас в контуре более 400 баз, около 15 ТБ данных, у мастеров есть реплики (в том числе каскадные и несколько реплик на один master). Резервное копирование снимают с standby; восстановление рабочей базы в тест или базу разработчиков выполняют без создания отдельного полного файла бэкапа, с сохранением транзакционной целостности. Для продуктива PostgreSQL с 1С на Windows сегодня трактуют как legacy или временный мост; сравнение на Windows Server 2012 R2 в батле - лабораторная площадка, а не рекомендуемый эталон размещения.

Репликация и backup в современном контуре строятся на штатных средствах экосистемы: физический базовый backup через pg_basebackup, инкрементные схемы через pg_probackup (по документации выбранного дистрибутива Postgres Pro или патчированного PostgreSQL от 1С). Политика восстановления должна совпадать с регламентом 1С: время простоя, точка восстановления, отдельная проверка загрузки DT и тяжёлых регламентных операций после restore.

 

Правила батла: платформа, железо, версии

Площадка: одно железо, Windows Server 2012 R2 для обеих СУБД, чтобы Linux-оптимизации PostgreSQL не искажали сравнение. Версии: MS SQL Server 2016; PostgreSQL 9.6 и отдельный прогон на ветке 10. Платформа 1С - актуальный релиз на момент теста, профиль настроек ориентирован на многопользовательскую нагрузку (буферы, лимиты соединений, autovacuum, checkpoint). Параллелизм намеренно сведён к единичным значениям на обеих сторонах (для MS SQL - MAXDOP 1; для PostgreSQL отключены параллельные worker-ы там, где это зеркалирует политику SQL), иначе различие в планах запросов смешает эффект СУБД и эффект степени параллелизма.

Перед промышленным выбором сверьте матрицу поддержки платформы с выбранным релизом 8.3. На странице «СУБД» системных требований 1С (v8.1c.ru) для x86-64 перечислены PostgreSQL с патчем от 1С линий 14.23–18.4, Postgres Pro 1С/Standard/Enterprise/CERT соответствующих мажоров, Tantor SE 1C; MS SQL Server 2016, 2017, 2019, 2022 (версия SQL на Linux допустима при рабочих серверах 1С на Windows). Батл на 9.6/10 и SQL 2016 остаётся исторически валидным, но новый проект планируют под версии из актуального списка, а не под снятые с поддержки комбинации.

Рекомендуемые ориентиры по PostgreSQL для 1С из отраслевых и вендорских материалов согласуются с многобазовым контуром: shared_buffers порядка 25% RAM (с верхней оговоркой для очень больших серверов), work_mem умеренно и с учётом числа одновременных сортировок, предсказуемый autovacuum для таблиц 1С, checkpoint_timeout и max_wal_size под дисковую подсистему, max_connections с запасом под пул 1С, но без тысяч idle-сессий. На Linux дополнительно выносят WAL и данные на разные тома, отключают лишние службы и держат statistics collector в RAM там, где это предписано дистрибутивом после инцидентов на Windows.

Чтобы методику можно было повторить, до старта прогона фиксируют согласованный набор KPI.

 

KPI батла: DT, объём базы, длительность, параллелизм

 

Схема 1: KPI батла: DT, объём базы, длительность, параллелизм

Единый перечень условий снижает риск сравнения «SQL на SSD» с «Postgres на SATA».

 

Раунд 1: загрузка большого DT в пустую базу

Сценарий: загрузка DT объёмом более 40 ГБ в пустую базу; после завершения операции итоговый размер базы порядка 2 ТБ. Это проверка не только диска, но и сервера 1С, сетевого пути к файлу DT и параметров выгрузки/загрузки. Большие DT возможны, если заранее выделить ресурсы под временные файлы, каталоги log и каталоги СУБД.

Итог раунда: MS SQL Server 2016 примерно в два раза быстрее PostgreSQL 9.6/10 при описанных настройках. По порядку длительности MS SQL укладывался примерно в сутки, PostgreSQL - около двух суток. Разница не отменяет использования PostgreSQL в продуктиве, но задаёт ожидания по окну обслуживания при полной перезаливке DT.

На форумах периодически советуют отключать fsync или ослаблять durability ради скорости загрузки. Выигрыш небольшой, цена - риск полной потери данных при сбое питания или kernel panic. Корректный ответ - быстрые диски (NVMe/SSD, отдельные тома под data и WAL), достаточный RAM под буферы и контроль autovacuum после загрузки, а не отключение гарантий записи.

Доминирующее время в PostgreSQL уходит на CREATE INDEX при развороте структуры из DT; MS SQL на том же железе строит индексы заметно быстрее. В PostgreSQL 12 и новее появились оптимизации построения индексов (в ряде сценариев меньше полной перезаписи таблицы); к раунду на 9.6/10 это относится как перспектива миграции версии, без пересчёта старых цифр.

Наглядно сопоставляются порядки длительности DT-прогона на одной площадке.

 

Раунд 2: тяжёлая операция УПП (партионный учёт)

Второй раунд ближе к повседневной эксплуатации: на типовой «1С:Управление производственным предприятием» запускают восстановление последовательности партионного учёта управленческих партий (штатная обработка конфигурации, типовой код, данные из исходного батла). Считают время от старта до завершения на MS SQL 2016 и на PostgreSQL в идентичных условиях, параллельно смотрят блокировки и I/O.

Методика для администратора 8.3: включить LOG с фильтром по длительности операций (события с высокой duration, контекст SDBL/DBPOSTGRS или DBMSSQL в зависимости от СУБД), параллельно снять счётчики waits и disk latency на стороне SQL Server (DMV sys.dm_os_wait_stats, sys.dm_io_virtual_file_stats) и на PostgreSQL (pg_stat_activity, pg_stat_database, pg_stat_user_tables). Сравнивают связку «длительность на стороне 1С, ожидания СУБД, диск».

Числовые итоги второго раунда (соотношение MS SQL и PostgreSQL на той же базе УПП) в этой редакции не дублируются: их нужно брать из полной публикации исходного батла вместе с графиками. Здесь зафиксирован только сценарий и способ проверки, чтобы не подменять первоисточник выдуманными процентами.

 

Итоги сравнения и выбор СУБД

PostgreSQL при корректном размещении на Linux, настройке и схеме репликации масштабируется до сотен баз 1С и больших объёмов данных; батл не опровергает этот опыт, он уточняет цену отдельных операций. MS SQL 2016 на равной Windows-площадке выигрывает тяжёлую загрузку DT примерно вдвое по времени; PostgreSQL остаётся практичной альтернативой, если окна обслуживания и регламент DT согласованы с бизнесом и не опираются на опасный «тюнинг» durability.

MS SQL разумнее, когда критичны частые полные перезаливки DT, команда уже стандартизировала RCSI/tempdb/MAXDOP под 1С, а бюджет лицензий принят. PostgreSQL разумен при большом числе баз, репликации для backup, экономии лицензий SQL и готовности админов поддерживать Linux-контур; перед миграцией прогоняют оба раунда батла на своём железе и релизе 8.3 из актуальной матрицы поддержки.

Перед решением проверьте: время DT на холодной базе; тяжёлую регламентную операцию вашей конфигурации (аналог раунда УПП); восстановление из backup/replica в тест; поведение autovacuum после массовых загрузок. Сравнение на Windows в статье - эталон честности версий, а не целевая архитектура; продуктив PostgreSQL с 1С планируют на Linux и версии PostgreSQL/Postgres Pro из системных требований платформы.

 

Запросы и параметры для своих прогонов

# фрагмент postgresql.conf (ориентиры, значения под RAM и диск подбирают отдельно)
shared_buffers = 8GB
work_mem = 64MB
maintenance_work_mem = 2GB
max_connections = 200
checkpoint_timeout = 15min
max_wal_size = 4GB
autovacuum = on
autovacuum_max_workers = 6

# базовый физический backup с реплики (пример)
pg_basebackup -h standby-host -U replication -D /var/lib/pgsql/restore/base -Fp -Xs -P

# активные запросы и ожидания PostgreSQL
psql -c "SELECT pid, state, wait_event_type, wait_event, query_start, left(query,120) FROM pg_stat_activity WHERE datname = current_database();"

# снимок I/O по файлам MS SQL (в SSMS)
SELECT DB_NAME(database_id) AS db, file_id, num_of_reads, num_of_writes, io_stall_read_ms, io_stall_write_ms
FROM sys.dm_io_virtual_file_stats(NULL, NULL);

Вступайте в нашу телеграмм-группу Инфостарт

1С PostgreSQL MS SQL нагрузочное тестирование DT Linux УПП администрирование 1С батл Postgres Pro

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    80127    409    171    

345

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Разработчик Аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    14183    54    62    

65

Инструменты администратора БД Инструментарий разработчика Роли и права Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    27967    101    46    

107

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    52304    142    164    

96

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    3746    9    0    

23

SALE! 10%

Инструменты администратора БД Роли и права Системный администратор Разработчик Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.04.2026, версия 1.4.1, работает в 1С:ФРЕШ!

23180 20862 руб.

06.12.2023    24555    83    14    

116
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1143 29.09.26 15:42 Сейчас в теме
Зачем вы этих мёртвых лошадей пытаетесь оживить? На дворе 2К26 год. Возьмите свежие MS и PG, и сравните их меж собой. С тех пор много чего появилось нового, разработанного в сторону ускорения и всяких оптимизаций.
RocKeR_13; +1 – Ответить
Для отправки сообщения требуется регистрация/авторизация