красное смещение first_value против минимального значения - PullRequest
0 голосов
/ 26 апреля 2018

Попытка понять, что лучше при работе с оконными функциями в Redshiftсделал POC.

1 Ответ

0 голосов
/ 26 апреля 2018

Я не сделал POC и не вижу необходимости делать это.Две конструкции создают по существу один и тот же план выполнения, с небольшими логическими различиями на самом низком уровне.Вы правы, что first_value() может "замкнуть" выполнение путем извлечения первого встреченного значения для каждой строки, вместо того, чтобы "запоминать" минимум и сделать одно дополнительное сравнение (нужно сравнить только значение из текущей строки сминимум предыдущего ряда).

Насколько важно сравнение?Хорошо, подумайте о том, что влияет на производительность.Данные во всех ссылочных столбцах должны быть прочитаны.Столбцы из partition by должны быть отсортированы или хэшированы.Столбцы из order by должны быть отсортированы.После всей этой работы одно дополнительное сравнение на строку - ничтожная разница.

Я не хочу сказать, что это ничего - вы можете найти что-то, скажем, разницу в 1%.Однако эта дополнительная работа на самом деле ничто по сравнению со всем, что делает конструкция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...