|
Использование временных таблиц для оптимизации. Есть ли смысл?
|
|||
---|---|---|---|
#18+
Моё руководство в использовании временных таблиц видит панацею, когда другими способами невозможно ускорить запрос. Действительно ли есть случаи когда это помогает? И есть ли разница - вынести часть общего запроса в CTE или во временную таблицу? В своей практике только один раз делал такое. В общем запросе по одной из таблиц никак не подхватывался нужный индекс. Вынес запрос по ней во временную таблицу. Работаю с 10-й версией Postgresql ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 10:20 |
|
Использование временных таблиц для оптимизации. Есть ли смысл?
|
|||
---|---|---|---|
#18+
Kr_Yury Моё руководство в использовании временных таблиц видит панацею, когда другими способами невозможно ускорить запрос. Действительно ли есть случаи когда это помогает? И есть ли разница - вынести часть общего запроса в CTE или во временную таблицу? В своей практике только один раз делал такое. В общем запросе по одной из таблиц никак не подхватывался нужный индекс. Вынес запрос по ней во временную таблицу. Работаю с 10-й версией Postgresql такие ситуации бывают с большими отчетами, но редко для чего нужна временная таблица 1)возможность построить СТАТИСТИКУ по промежуточному результату для получения нормального плана с его использованием (не забывать analyze временной таблицы после заполнения) когда через CTE получается критически большая ошибка в оценке количества строк или их распределения. 2)возможность построить ИНДЕКС по временной таблице для оптимизации дальнейшего выполнения запроса (не забывать create index/analyze после заполнения) если же ни analyze ни create index по временным таблицам не используются или ничем не помогают - CTE лучше... временные таблицы очень дорогое решение в postgresql и если запрос отрабатываем быстрее секунды то смысла в них нет да и если быстрее минуты - сомнителен если там у вас часовой запрос и если проблема именно в кривой оценке количества строк планировщиком - можно попробовать через временные таблицы поправить. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2020, 12:41 |
|
|
start [/forum/topic.php?fid=53&fpage=23&tid=1994483]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 135ms |
0 / 0 |