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    83150    431    171    

361

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

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

14000 руб.

17.04.2026    16654    63    62    

73

Инструменты администратора БД Роли и права Системный администратор Разработчик Пользователь 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 руб.

06.12.2023    25043    85    14    

118

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

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

17000 руб.

10.11.2023    28689    103    46    

107

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

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

6000 руб.

15.04.2026    4144    12    0    

25

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

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

14640 руб.

29.04.2020    52905    145    164    

98
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1146 29.09.26 15:42 Сейчас в теме
Зачем вы этих мёртвых лошадей пытаетесь оживить? На дворе 2К26 год. Возьмите свежие MS и PG, и сравните их меж собой. С тех пор много чего появилось нового, разработанного в сторону ускорения и всяких оптимизаций.
paulwist; RocKeR_13; +2 – Ответить
2. Dragonim 156 30.09.26 10:52 Сейчас в теме
(1) Более того. В последних праформах сделаны различные оптимизации, а внутри конфигураций переписаны запросы так, чтобы работать с последними PostgreSQL.
3. YA_93013054 20 30.09.26 12:15 Сейчас в теме
1) Сравнение на устаревших версиях СУБД: В исследовании использованы PostgreSQL 9.6 и 10. В современных версиях движка (начиная с PostgreSQL 12 и вплоть до актуальных 16–18 линеек) алгоритмы параллельного построения индексов и работы с памятью были кардинально переработаны вендорами, из-за чего разрыв в скорости создания индексов на актуальных версиях может быть существенно меньше.
2) Нецелевая среда для PostgreSQL: Тестирование проводилось на Windows Server 2012 R2 ради обеспечения идентичности условий. Однако PostgreSQL исторически не оптимизирован под управление памятью и файловую систему Windows, что создает для него заведомо худшие условия по сравнению с нативным Linux-окружением.
3) Отсутствие публичных числовых данных второго раунда: Методология замера на тяжелой операции «1С:УПП» (партионный учет) приведена подробно, но числовой срез автор оставил за рамками статьи, перенаправив к полной версии исходного батла, что не позволяет оценить чистый разрыв на транзакционной нагрузке без обращения к первоисточнику.
4) Антипаттерн развертывания 2-терабайтных баз через DT: Использование формата .dt для баз объемом ~2 ТБ на практике 1С считается нештатным и аварийно-опасным сценарием; для баз такого масштаба стандартом являются бэкапы средствами самой СУБД или штатная репликация через ibcmd infobase replicate.
Для отправки сообщения требуется регистрация/авторизация