Redshift Hash Join - Приведение Varchar как текста в FK, когда оба типа? - PullRequest
1 голос
/ 23 мая 2019

У меня есть оператор SQL, который присоединяется к некоторой внешней таблице в некоторой внутренней таблице и включается "somekey". И «somekey» внешнего и внутреннего таблиц - это в точности один и тот же тип данных - varchar (36). Однако по какой-то причине при анализе плана запроса Redshift хочет сначала преобразовать каждый текст в текст. Я полагаю, это может снизить производительность. 1) Почему это кастинг? 2) Могу ли я сделать так, чтобы его не бросили? 3) Имеет ли это значение (действительно ли это ухудшает производительность)?

Частичный план:

  • XN Hash Join DS_DIST_ALL_NONE (стоимость = 64.17..2067242.11 строк = 28074 ширина = 160)
    • Hash Cond: (("external" .somekey) :: text = ( "Внутренний" .somekey) :: текст)
...