Перераспределение данных из производных таблиц Teradata SQL
Это еще раз вопрос для SQL Pundits. Я могу создавать производные таблицы в Teradata, используя эти подходы
- With ( __,__)
(select statement ) alias
query
-- select ____ from a , ( select statement ) b < Join condition )
Я задавался вопросом в любом из случаев, КАК происходит распределение данных (для DT). Здесь есть правило? Есть ли способ, которым я могу настроить DT так, чтобы я мог получать перераспределение, основываясь на ключе (ах), который я хочу - ту же функциональность, что и VT? Но я думаю, это позволяет избежать использования нового оператора CT, а также потеряет возможность статистики (который я могу в некоторых ситуациях позволить себе потерять, если это не меняет объяснение)
1 ответ
EXPLAIN
запрос, и вы увидите распределение, это не те ключи, которые вам нужны, обычно они основаны на следующем соединении, например, распределяются по хеш-коду (столбцы вашего соединения).
Используя VT, вы можете форсировать определенный порядок, поэтому, конечно, бывают случаи, когда изменчивая таблица может быть лучше, но если вам не нужен тот же результат в последующих запросах, вы должны сначала проверить план оптимизатора, используя DT /CTE.