SQL Server 2016: агрегатный оконный оператор пакетного типа | Функции FIRST.VALUE и LAST.VALUE
SQL Server 2016: агрегатный оконный оператор пакетного типа | Функции FIRST.VALUE и LAST.VALUE

SQL Server 2016: агрегатный оконный оператор пакетного типа | Функции FIRST.VALUE и LAST.VALUE

❤ 618 , Категория: Новости,   ⚑ 11 Авг 2017г

Содержание:
1. Строки с разделителями UNBOUNDED и CURRENT ROW;
2. RANGE с разделителями UNBOUNDED и CURRENT ROW;
3. Разделители, отличные от UNBOUNDED и CURRENT ROW;
4. Оконные функции смещения, функции LAG и LEAD;
5. Функции FIRST.VALUE и LAST.VALUE (Вы читаете данный раздел).


Как уже отмечалось, внутренние механизмы системы преобразуют функции LAG и LEAD в функцию LAST.VALUE. Когда мы используем функцию LAST.VALUE в режиме, эквивалентном функциям LAG и LEAD с показателем смещения, равным 1 (с фреймом ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING или 1 FOLLOWING AND 1 FOLLOWING), то получаем оптимизацию, аналогичную оптимизации для функций LAG и LEAD, как описано в предыдущем разделе. В иных случаях (когда функция LAST.VALUE используется со смещением, не равным 1, или когда функция FIRST.VALUE применяется с любым значением смещения), оптимизация расчета самой оконной функции выполняется с помощью традиционных операторов построчного режима. При выполнении той части плана, где речь идет о считывании данных из индекса columnstore, о сортировке и о вычислении номеров строк, можно по-прежнему пользоваться операторами пакетного режима.

Оператор пакетного режима Window Aggregate, реализованный в версии SQL Server 2016, при выполнении большинства оконных функций обеспечивает значительное повышение быстродействия. Этот оператор можно использовать при работе с агрегирующими оконными функциями без фрейма, ранжирующими и статистическими оконными функциями с классическим фреймом (где применяются разделители UNBOUNDED и CURRENT ROW), а также при работе с оконными функциями смешения LAG и LEAD с классическим показателем смещения, равным 1.

Этот оператор можно использовать даже в тех случаях, когда данные извлекаются из источника, где они хранятся в представлении rowstore, но при условии, что в опрашиваемой таблице имеется по меньшей мере один индекс columnstore. Допускается «сосуществование» данных в представлениях как columnstore, так и rowstore; в этом случае право выбора источника для любого запроса предоставляется оптимизатору. Если вы имеете дело с ситуацией, в которой вам требуются только данные в представлении rowstore, можете создать фиктивный отфильтрованный индекс columnstore с единственной целью обеспечить возможность обработки данных в пакетном режиме.

Этот оператор демонстрирует гораздо более широкие возможности масштабирования со степенью параллелизма (degree of parallelism, DOP) n>1 против степени DOP=l, характеризующей обработку в построчном режиме. Строчка It Just Runs Faster, описывающая повышенное быстродействие версии SQL Server 2016, полностью справедлива. Будем надеяться, что в дальнейшем специалисты Microsoft внесут в свой продукт множество подобных усовершенствований и возможности оконных функций тоже будут расширены.


На этом все, с агрегатным оконным оператором пакетного типа в SQL Server 2016 мы закончили и теперь вы моете с чистой совестью приступить к своему самому любимому занятию — игре в слоты на http://lavaigrovyeavtomaty.com/azartnye-igry/. Сотни игровых автоматов с огромными бонусами и честной системой выигрышей только и ждут, когда вы бросите им вызов. Возможно, именно сегодня удача будет на вашей стороне и вы сорвете джекпот!


По теме: ( из рубрики Новости )

Оставить отзыв

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*
*

11 + четыре =

Похожие записи

наверх