OFFSET и FETCH

by Alexey Knyazev 25. августа 2011 19:17
Постраничная выборка, пейджинг - это достаточно популярная тема/задача, которую приходится решать любому программисту. Очень многие ругали SQL Server, за то, что в отличии от других СУБД, в сиквеле эта задача решается не так прозрачно. Для решения этой задачи приходилось использовать подзапросы с несколькими операторами TOP, либо ранжирующие функции, которые накладывают большие сопутствующие затраты, что сказывается на производительности.

В новой версии SQL Server эта задача решается с помощью предложений OFFSET и FETCH.

Применение в качестве решения для разбиения на страницы предложений OFFSET и FETCH потребует однократного выполнения запроса для каждой «страницы» данных, возвращаемых клиентскому приложению.Например, чтобы вернуть результаты запроса блоками по 10 строк, необходимо выполнить запрос для получения строк с 1 по 10, затем еще раз для получения строк с 11 по 20 и так далее.Каждый запрос выполняется независимо и никаким образом не связан с другими запросами.


[Ещё]

Tags: ,

SQL Server

Sequence

by Alexey Knyazev 19. августа 2011 17:18

В SQL:2003 появилась возможность определения нового вида объектов базы данных – генераторов последовательностей (sequence generators). Такого рода объекты производят изменяемые во времени точные числовые значения. Генераторы последовательностей могут оказаться полезными в разных контекстах среды SQL. При этом они уже давно присутствуют в большинстве реляционных базах данных таких, как Oracle, DB2, PostgreSQL и т.д.
В новой версии SQL Server под кодовым названием Denali (SQL Server 2011) так же появились Sequence (последовательности). Последовательность представляет собой определяемый пользователем объект, привязанный к схеме, который формирует последовательность числовых значений в соответствии со спецификацией, с которой эта последовательность создавалась. Последовательность числовых значений формируется в возрастающем или убывающем порядке с заданным интервалом; можно настроить перезапуск (зацикливание) последовательности, когда она исчерпана. В отличие от столбцов идентификаторов последовательности не связаны с конкретными таблицами. Приложение обращается к объекту последовательности, чтобы получить следующее значение. Приложения управляют связями между последовательностями и таблицами. Пользовательские приложения могут ссылаться на объект последовательности и распределять значения между несколькими строками и таблицами.

[Ещё]

Tags: ,

SQL Server

With Result Set

by Alexey Knyazev 10. августа 2011 16:37

Ещё одна приятная фишка, которая появится в новой версии SQL Server ( aka Denali ) - это параметр WITH RESULT SETS инструкции EXECUTE. Этот параметр позволяет не только делать выборку из процедуры, но и изменять результирующий рекордсет.

[Ещё]

Tags: ,

SQL Server

SQL Server 2011 (Denali CTP3). 14 новых функций и 1 изменена.

by Alexey Knyazev 28. июля 2011 01:27

Совсем недавно в общем доступе появился SQL Server 2011 Denali CTP (Community Technology Preview) 3. Пора подводить небольшие итоги, т.к. релиз уже не за горами. О том, что нового нас ждёт, уже сейчас можно найти, в том числе и на просторах Рунета.
В CTP 3 появились 14 новых функций и 1 была изменена, именно о них я хочу рассказать.

[Ещё]

Tags: , ,

SQL Server