Почему при использовании оконной функции в Redshift происходит скачок стоимости планировщика запросов? - PullRequest
1 голос
/ 12 марта 2019

Я столкнулся со странным поведением планировщика запросов в Amazon Redshift: в некоторых случаях, например, когда используется оконная функция, стоимость возрастает на 10000. Обычно это после шага «Сеть».

Моя проблема в том, что иногда мне нужно использовать оконные функции, и сравнение затрат между альтернативами становится невозможным, поскольку соотношение времени выполнения запросов не пропорционально соотношению их затрат (оно относительно пропорционально, если вы посмотрите на стоимость оконной функции без умножения на 10000).

Вот упрощенный пример, сравните эти 2 запроса:

-- Query #1: running time 2m 48s, cost 1000017902760.42
explain
select 
    first_value(timestamp) over (order by timestamp rows 
        between unbounded preceding and unbounded following)
from table_with_timestamps as l
limit 1
;
-- Query #2: running time 10 sec, cost 1549471.30
explain
select 
    min(timestamp)
from table_with_timestamps

Может ли кто-нибудь объяснить больше об оптимизации оконных функций и вообще об этом "сетевом" шаге, который мне не понятен?

Спасибо.

...