Обновить

Комментарии 4

А в чём, собственно, сложность, что пересказ документации и пара базовых советов отмечается как "сложный"?

Частично согласен, начало действительно подано довольно просто. Но я специально хотел показать не только различия функций, а где они начинают ломать top-N, планы выполнения и поведение на продовых объёмах. Так что это скорее не сложный синтаксис, а сложнее, чем базовый туториал.

А заодно объясните вот какую штуку... Кивая на необходимость сортировки по предложению ORDER BY, вы постоянно пишете так, словно PARTITION BY ну никакой сортировки не требует. Но ведь это неверно, для деления на партиции тоже необходима сортировка. Да, она может быть предрасчётной, если есть соответствующий индекс - но то же ведь относится и к ORDER BY. То есть в этом вопросе они равнозначны. А у вас в статье идёт чуть ли не противопоставление. Почему так?

Спасибо, замечание справедливое.
Я не хотел противопоставить ORDER BY и PARTITION BY так, будто сортировка нужна только для ORDER BY. Корректнее было написать, что ORDER BY определяет порядок внутри окна, а PARTITION BY - разбиение на группы, внутри которых этот порядок тоже нужно обеспечить.

Моя мысль была в другом: PARTITION BY часто добавляет отдельную стоимость исполнения - overhead на разбиение, работу с большими партициями, а в MPP-системах ещё и перераспределение данных. Но да, формулировку в статье можно было сделать точнее.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации