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

Откуда:
Сообщений: 38
Здравствуйте!
Помогите пожалуйста разобраться с непонятным моментом в плане выполнения запроса.

Есть таблица вида
CREATE TABLE [dbo].[Orders](
	[OrderID] [int] NOT NULL,
	[CustomerId] [int] NOT NULL,
	[Total] [money] NOT NULL,
 CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED 
(
	[OrderID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO


Для запроса
select OrderId, CustomerID, Total, Sum(Total) over(partition by CustomerID)
from dbo.Orders


Генерируется план с непонятным предикатом у нижнего оператора Nested Loops
                    <Predicate>
                      <ScalarOperator ScalarString="(1)">
                        <Const ConstValue="(1)" />
                      </ScalarOperator>
                    </Predicate>

Что обозначает этот предикат? Зачем он используется для Nested Loops? Заранее спасибо за ответы.

К сообщению приложен файл (NestedLoopsPredicat.sqlplan - 32Kb) cкачать
19 фев 15, 14:06    [17287433]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный момент в плане запроса с оператором Nested Loops  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
rere1234,

План такой формы говорит о наличии Segment Spool, а предикат (1) - это просто всегда равенство - т.е. безусловное соединение для каждой итерации, можете вопринимать как true=true.
19 фев 15, 15:27    [17287990]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить