|
Использование временных таблиц для оптимизации. Есть ли смысл?
|
|||
---|---|---|---|
#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&msg=39996139&tid=1994483]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 159ms |
0 / 0 |