0

У Postgres теперь есть параллельные запросы. Используются ли параллельные запросы, когда таблица разбита на разделы, запрос находится в главной таблице, и задействованы несколько разделов (дочерние таблицы).Параллели запросов PostgreSQL параллельны?

Например, я перехожу к часу дня. Затем я хочу рассчитать тип события более одного часа. Агрегация может выполняться на каждом разделе, при этом результаты добавляются в конце.

Альтернативой является использование соединения между разделами (дочерние таблицы). В этом случае Postgres выполняет параллельное выполнение.

+0

PostgreSQL 9,5 и старше: нет. PostgreSQL 9.6 и новее: проверьте план запроса. Где «объяснить анализ»? Отредактируйте свой пост, чтобы добавить его, пожалуйста. –

ответ

0

Нет, перегородки не запрашиваются параллельно. В это время (9.6) только сканирование таблицы использует параллельное выполнение. Таблица разделена между доступными рабочими, и каждый работник просматривает часть таблицы. В конце основной работник объединяет частичные результаты.

Побочным эффектом этого является то, что оптимизатор с большей вероятностью будет выбирать полное сканирование таблицы при разрешении параллельного запроса.

Насколько я могу судить, нет плана для распараллеливания исполнения на основе разделов (или объединения всех). Было добавлено предложение добавить это: here.

Редактировать: Мой первоначальный ответ был неправильным. Этот ответ был полностью пересмотрен.

+0

Привет, у меня есть и выпущены и представлены [здесь] (http://stackoverflow.com/questions/41876256/cani-i-split-a-query-in-multiple-queries-or-create-parallelism-to- speed-a-query? noredirect = 1 # 41876256) Интересно, может ли этот паралимизм помочь мне в сканировании таблицы, когда поле является функцией (также сканирование таблицы). В настоящее время я использую 9,5, поэтому Im рассматривает возможность перехода на 9.6 именно для этого. –

Смежные вопросы