Планирование порядка Join операторов является NP-сложной задачей, и может быть решена только приблизительно. Коммерческие СУБД зачастую делают полный перебор доступных комбинаций для простых запросов, но переключаются на greedy эвристики по мере того, как количество таблиц в запросе возрастает. Неоптимальная реализация планирования Join операторов может привести к существенному замедлению планировщика, и неоправданному возрастанию latency запросов.
Планирование порядка Join в Trino реализовано с помощью простого top-down алгоритма, который является неэффективным. Мы регулярно наблюдаем, что планирование порядка Join в даже в умеренно сложных запросах может превышать 1s.
Необходимо разработать более совершенный алгоритм планирования порядка Join для уменьшения latency планирования.