разбиение на страницы в SQL Server 2008 - PullRequest
0 голосов
/ 11 декабря 2010

Я новичок в SQL-сервере.сохраняя этот вопрос в качестве ссылки. Я сомневаюсь, что
, почему у сервера Microsoft Sql нет чего-то похожего на limit в Mysql , и теперь они вынуждены писать либо SP, либо внутренний запросРазбивка на страницы. Я думаю, что создание временного представления / таблицы или использование внутреннего запроса будет медленнее, чем простой запрос. И я полагаю, что будет серьезная причина для того, чтобы осудить это.Мне нравится знать причину.

Если кто-то знает, пожалуйста, поделитесь им.

Ответы [ 3 ]

3 голосов
/ 11 декабря 2010

Я никогда не знал, что SQL Server поддерживает что-то вроде TOP 10,20 - вы действительно полностью уверены? Разве это не какая-то другая система, может быть ??

В любом случае: SQL Server 2011 (с кодовым названием «Denali») добавит больше поддержки для этого, когда он выйдет к концу 2011 года или около того.

Предложение ORDER BY получит новые дополнительные ключевые слова OFFSET и FETCH - узнайте больше о них здесь, в MSDN .

Вы сможете писать такие утверждения, как:

-- Specifying variables for OFFSET and FETCH values  
DECLARE @StartingRowNumber INT = 150, @FetchRows INT = 50;

SELECT 
    DepartmentID, Name, GroupName
FROM 
    HumanResources.Department
ORDER BY 
    DepartmentID ASC 
    OFFSET @StartingRowNumber ROWS 
    FETCH NEXT @FetchRows ROWS ONLY;
1 голос
/ 11 декабря 2010

Я согласен на 100%!В MySQL есть предложение LIMIT, которое упрощает синтаксис для возврата диапазона строк.

Я точно не знаю, что синтаксис временной таблицы медленнее, поскольку SQL Server может выполнять некоторые оптимизации.Тем не менее, предложение LIMIT будет гораздо проще набрать.И я ожидаю, что будет больше возможностей для оптимизации.

Я принес это однажды, и группа, с которой я разговаривал, просто не согласилась.

Насколько яЯ обеспокоен тем, что нет причин не иметь предложение LIMIT (или его эквивалент), и я сильно подозреваю, что SQL Server в конечном итоге будет!

1 голос
/ 11 декабря 2010

Пейджинг SQL Server 2005 - Святой Грааль (требуется бесплатная регистрация).

(хотя в нем говорится, что SQL Server 2005 все еще применим к SQL Server 2008)

...