Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
SomewhereSomehow Member Откуда: Moscow Сообщений: 2480 Блог |
rere1234, План такой формы говорит о наличии Segment Spool, а предикат (1) - это просто всегда равенство - т.е. безусловное соединение для каждой итерации, можете вопринимать как true=true. |
19 фев 15, 15:27 [17287990] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |