Статистика по временным таблицам в PostgrePRO - другой подход — 5 августа 2026 г. в 02:16:49.252
Статистика по временным таблицам в PostgrePRO - другой подход Сначала о проблематике: В 1С мы с вами обожаем создавать и использовать в запросах временные таблицы, причём создавать и заполнять их тысячами в секунду в рамках одного сервера СУБД. При этом лучшая в мире платформа 1С, после заполнения каждой временной таблицы даёт команду ANALYZE ##tt1, где ##tt1 имя нашей временной таблицы. При этом статистика считается по каждой колонке временной таблицы. Это влечёт за собой серьёзные траты ресурсов сервера на расчёт статистики именно по временным таблицам. Расширение pgpro_temp_stats предлагает интересный подход к решению этой проблемы, побочным эффектом которого может стать ускорение запросов с временными таблицами! Кратко: 1. При включении параметра pgpro_temp_stats.skip_analyze - игнорируем команды ANALYZE по целым таблицам, т.е. пока не греем воздух просто расчётом статистики 2. При включении параметра pgpro_temp_stats.create_statistics - расширение считает статистику только по тем столбцам временной таблицы, которые задействованы в запросе. Более того, считается не просто статистика, а расширенная статистика, т.е. не по каждому столбцу в отдельности, а по всем столбцам из запроса сразу. Что позволяет планировщику получить более оптимальный план запроса. 3. Так же расширение запоминает уже посчитанную статистику для таблицы, так как мы же можем её и второй раз использовать. Если в новом запросе поля те же, то статистика не считается, так как она уже есть, если же поля другие, то считаем по новому набору полей. Сколько таких запоминать регулируется параметром pgpro_temp_stats.ts_max_items Расширение доступно в 17 и 18 версиях PGRPO Enterprise. Мы протестировали - нам понравилось!)

