SQL Server Denali – Paging

30. July 2011 08:51 by Denis Reznik in FETCH, OFFSET, Paging, SQL Server, SQL Server 2011, SQL Server Denali  //  Tags:   //   Comments
Постраничный вывод данных – это тот функционал, который встречается чуть-ли не на каждом информационном сайте, и реализация подобной выборки зачастую не так сложна. Но всё же в SQL Server, до версии Denali, не было нормальной поддержки таких сценариев. Стандартным подходом реализации постраничной выборки в SQL Server был запрос с функцией ROW_NUMBER. Суть этого подхода в том, что запрос пробегает по всем строкам набора и нумерует их от единицы до номера конечного элемента. Потом по этим номерам и делается выборка по диапазону, например мы получаем вторые 10 записей набора (2-я страница). Но у этого подхода есть один существенный минус – каждый раз, даже если вам нужно выбрать 10 первых записей из таблицы в миллион записей, запрос будет пробегать миллион записей. Чем больше данных, тем ниже перфоманс. Те кто уже боролся с подобными проблемами меня поймут. Бороться можно и нужно, но это сложно. В SQL Server Denali появляется поддержка таких выборок на уровне обработчика запросов, но всё далеко не так хорошо, как может показаться на первый взгляд. Впрочем, обо всём по-порядку. [More]

Обо мне

MVP

Data Architect at Intapp, Inc.

PASS Regional Mentor, CEE

MCT, MCITP, MCPD, MCTS


Microsoft MVP

Month List