Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вопрос по обобщённым табличным выражениям  [new]
Mikhail Tchervonenko
Member

Откуда: Münster, Germany
Сообщений: 1738
Простой пример. необходимо выбрать записи начиная с 50й по 60ю
автор
WITH myTable
AS (SELECT *,
Row_number() OVER (ORDER BY satz_id) AS rnumber
FROM dbo.mitglied)
SELECT *
FROM myTable
WHERE rnumber BETWEEN 50 AND 60;

Вопрос, как обработает MSSQL 2008 эту конструкцию? будет сначала выбирать все записи и нумеровать их а потом уже из них выбирать с 50 по 60ю, или как то хитрее поступит и не будет выбирать и нумеровать все записи? Вопрос интересен с точки зрения быстродействия. Насколько умён MSSQL в подобных случаях.

Спасибо за ответы.
2 авг 11, 12:23    [11057954]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обобщённым табличным выражениям  [new]
Glory
Member

Откуда:
Сообщений: 104751
Для этого смотрят в план выполнения запроса
2 авг 11, 12:26    [11057979]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обобщённым табличным выражениям  [new]
Mikhail Tchervonenko
Member

Откуда: Münster, Germany
Сообщений: 1738
Glory,
из этого плана не все понятно если честно,
Table Scan [mitglied] 40%->Sort 60%->Segment 0%->Sequenzprojekt (Compute Scalar) 0%->Top 0%->Filter 0%->SELECT 0%

Непонятно, происходит ли первый селект с выборкой всех данных или нет.
2 авг 11, 12:53    [11058197]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по обобщённым табличным выражениям  [new]
Glory
Member

Откуда:
Сообщений: 104751
Mikhail Tchervonenko
Glory,
из этого плана не все понятно если честно,
Table Scan [mitglied] 40%->Sort 60%->Segment 0%->Sequenzprojekt (Compute Scalar) 0%->Top 0%->Filter 0%->SELECT 0%

Непонятно, происходит ли первый селект с выборкой всех данных или нет.

Там же на стрелке пишется число записей
2 авг 11, 12:57    [11058236]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить