Антипаттерн 'create temporary table'
Приложение строило отчеты по базе PostgreSQL. И забикс с графаной жаловались на необычно долгий вакуум и высокую нагрузку по записи (которой вроде как вообще не должно было быть).
Анализ запросов показал следующий сценарий - создается временная таблица, которая наполняется одним SELECT-ом, и используется далее ровно один раз:
Временная таблица сохранилась на диск.
А можно было без записи ?
Конечно, можно переписать на Common table expressions:
Вывод
временные таблицы - плохо
в простых случаях - легко переписать на CTE
Как можно найти такие запросы
Например, при помощи pg_stat_statements: