Закончилась эпоха холиваров на тему «включать в PostgreSQL параметр online_analyze при работе с платформой 1С:Предприятие 8, или не включать».
Поводом для споров являлось указание в официальной документации команды разработчиков Postgres:
Дело в том, что, начиная с версии 8.3.13, платформа 1С самостоятельно включает использование analyze явным образом после вставки во временную таблицу.Включите автоматический анализ временных таблиц при их модификации:
online_analyze.table_type = 'temporary'
Таким образом, использование online_analyze.table_type = 'temporary' является избыточным и, фактически, приводит только к более высокому потреблению ресурсов процессора сервера, на котором работает СУБД.
Так как в документации 1С по настройке СУБД PostgreSQL такой рекомендации нет, мы связались с командой разработчиков Постгрес Профессиональный, чтобы окончательно расставить точки над «i».
Получили такой ответ - цитируем:
Так что при использовании актуальной версии платформы 1С на своих проектах с использованием PostgreSQL не нужно включать online_analyze.Проверили работу 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 нет
Свои рекомендации, к слову, команда Постгрес актуализировала – сейчас в документации уже отсутствует устаревшая рекомендация.
***
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