Как ключ распределения распределяет данные в сегментах для GreenPlum - PullRequest
0 голосов
/ 09 ноября 2019

Я понимаю, что база данных Greenplum будет разделять данные на разные сегменты в соответствии с ключом распределения таблицы. И, кроме того, из документации говорится:

Для достижения локальных объединений для больших таблиц, обычно объединяемых вместе, распределите таблицы по одному столбцу.

Предположим, есть следующие таблицы:

  1. T_1 содержит ключевые внешние столбцы (a, b)
  2. T_2 содержит ключевые внешние столбцы (a)
  3. T_3 содержитключевые внешние столбцы (b)

Итак, если я распределю T_1 по обоим (a, b), как мне распределить T_2 и T_3, чтобы добиться максимальной локализации объединения?

1 Ответ

1 голос
/ 10 ноября 2019

Вы не можете распределять T_2 и T_3 так же, как T_1, потому что вам не хватает столбцов в каждой таблице.

В вашем сценарии вы можете либо оптимизировать T_2, распределяя T_1 по (a), либо оптимизироватьТ_3 путем распределения Т_1 по (б). И вы должны использовать те же типы данных.

...