Я столкнулся со странным поведением планировщика запросов в 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
Может ли кто-нибудь объяснить больше об оптимизации оконных функций и вообще об этом "сетевом" шаге, который мне не понятен?
Спасибо.