Кое что о параметре [online_analyze] PostgreSQL при работе с платформой 1С:Предприятие 8

Postrges и 1С

Закончилась эпоха холиваров на тему «включать в PostgreSQL параметр online_analyze при работе с платформой 1С:Предприятие 8, или не включать».

Поводом для споров являлось указание в официальной документации команды разработчиков Postgres:

Включите автоматический анализ временных таблиц при их модификации:

online_analyze.table_type = 'temporary' 

Дело в том, что, начиная с версии 8.3.13, платформа 1С самостоятельно включает использование analyze явным образом после вставки во временную таблицу.

Таким образом, использование online_analyze.table_type = 'temporary' является избыточным и, фактически, приводит только к более высокому потреблению ресурсов процессора сервера, на котором работает СУБД.

Так как в документации 1С по настройке СУБД PostgreSQL такой рекомендации нет, мы связались с командой разработчиков Постгрес Профессиональный, чтобы окончательно расставить точки над «i».

Получили такой ответ - цитируем:

Проверили работу 1с 8.3.13 с PostgreSQL.

Действительно, платформа 1с сама выполняет ANALYZE.

02:06.216112-4,DBPOSTGRS,5,process=rphost,p:processName=*,OSThread=3244,t:clientID=1457,t:applicationName=WebServerExtension,t:computerName=*,t:connectID=*,SessionID=*,Usr=*,DBMS=DBPOSTGRS,DataBase=*,Trans=0,dbpid=224700,Sql=ANALYZE pg_temp.tt74,RowsAffected=0,Result=PGRES_COMMAND_OK,Context='*'

И т.к. ANALYZE со стороны 1С не отключить, то смысла в online_analyze нет 

Так что при использовании актуальной версии платформы 1С на своих проектах с использованием PostgreSQL не нужно включать online_analyze.

Свои рекомендации, к слову, команда Постгрес актуализировала – сейчас в документации уже отсутствует устаревшая рекомендация.

***

UPD: Небольшое дополнение к статье по итогам обсуждения в чате Astra Linux.

Вопрос

В сборке psql от postgresql pro, данный параметр прописан по умолчанию.

В консоли psql смотрим через show online_analyze.table_type; Получаем значение "temporary".

Если мы просто закомментируем данный параметр в postgresql.conf, то вывод show online_analyze.table_type; будет "all" - то есть параметр теперь для всех таблиц.

А фраза "не использовать" подразумевает выставление данного параметра в "none".

Поэтому и вопрос, что сейчас делать с данным параметром, просто закомментировать или выставить в none 

Ответ:

online_analyze.enable = off

Или даже подумать о:

shared_preload_libraries = ''


Подписывайтесь на наш telegram-канал - там все самое актуальное и интересное: https://t.me/it_expertise_ru


Репост

Свяжитесь с нами

119435 г. Москва, ул. Малая Пироговская, 16
Контакты
Нажимая на кнопку "Связаться с нами", вы даете согласие на обработку персональных данных. Подробнее об обработке данных читайте в Политике
Связаться с нами

Заполните форму ниже и наши специалисты свяжутся с вами в ближайшее время

Удобное время для звонка
  • 10:00 - 12:00
  • 12:00 - 14:00
  • 14:00 - 16:00
  • 16:00 - 18:00
  • 18:00 - 19:00
Время московское
Отвечаем с понедельника по пятницу
Нажимая на кнопку "Связаться с нами", вы даете согласие на обработку персональных данных. Подробнее об обработке данных читайте в Политике