Самостоятельное объединение postgres-xl стоит 10 секунд при объединении данных.

Моя версия postgres-xl была стабильной 9.5r1.5. Когда запрос как ниже

SELECT * FROM tests t1 LEFT JOIN tests t2 ON t1.id1 = t2.id2 WHERE t1.id1=10000;

Этот запрос прост и просто возвращает одну строку. Когда я запускал его в узле данных, он стоил всего 10 мс. Но стоит 10020 мс в координатном узле. Я пробовал другой запрос и убедился, что при присоединении к той же таблице координатный узел обойдется в 10 секунд. Но если запрос ничего не возвращает, он стоит всего 20 мс в координатном узле. Так что я думаю, что что-то не так, когда координатный узел объединяет данные. может кто-нибудь сказать мне, как этого избежать. Спасибо большое.

0 ответов

Также попробуйте что-то вроде "SET work_mem = '256MB'; SET LOCAL work_mem = '256MB';". Увеличение памяти по умолчанию для сортировки и вакуума.

Это больше вопрос к https://dba.stackexchange.com/ и на самом деле у кого-то там была такая же проблема.

Вы можете увидеть мой ответ на связанный вопрос, вот краткое резюме:

Это ошибка postgres-xl, которая запускается для запросов, планируемых и выполняемых с использованием перераспределения строк, и для которых некоторые узлы не имеют строк.

Вы можете обойти это, изменив запрос, изменив распределение таблиц или добавив данные. Ты можешь использовать EXPLAIN чтобы проверить, будет ли ваш запрос включать перераспределение данных.

Другие вопросы по тегам