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

Откуда:
Сообщений: 2631
DELETE RBS
FROM STG2.RBS.STG_Vznos as RBS
LEFT JOIN (SELECT objid
FROM REF2.SRS.RBS_ACCOUNT_RK
UNION ALL
SELECT VNPR.VNESH_PR
FROM STG2.RBS.STG_VNPR as VNPR
INNER JOIN REF2.SRS.RBS_ACCOUNT_RK as RBS_ACC
ON VNPR.MY_OBJID = RBS_ACC.objid ) as REF2
ON REF2.objid = RBS.OBJID
WHERE REF2.objid IS NULL

(1 row(s) affected)


  |--Sequence
|--Index Delete(OBJECT:([STG2].[RBS].[STG_Vznos].[IX_Rep_Start_DTTM]) WITH ORDERED PREFETCH)
| |--Sort(ORDER BY:([STG2].[RBS].[STG_Vznos].[REP_START_DTTM] ASC, [Bmk1013] ASC))
| |--Table Spool
| |--Table Delete(OBJECT:([STG2].[RBS].[STG_Vznos]) WITH UNORDERED PREFETCH)
| |--Top(ROWCOUNT est 0)
| |--Hash Match(Aggregate, HASH:([Bmk1000]), RESIDUAL:([Bmk1000] = [Bmk1000]))
| |--Filter(WHERE:([Union1012] IS NULL))
| |--Hash Match(Right Outer Join, HASH:([Union1012])=([Expr1016]), RESIDUAL:([Union1012]=[Expr1016]))
| |--Concatenation
| | |--Index Scan(OBJECT:([REF2].[SRS].[RBS_ACCOUNT_RK].[IXunq_objID]))
| | |--Hash Match(Inner Join, HASH:([RBS_ACC].[objid])=([Expr1017]), RESIDUAL:([Expr1017]=[REF2].[SRS].[RBS_ACCOUNT_RK].[objid] as [RBS_ACC].[objid]))
| | |--Index Scan(OBJECT:([REF2].[SRS].[RBS_ACCOUNT_RK].[IXunq_objID] AS [RBS_ACC]))
| | |--Compute Scalar(DEFINE:([Expr1011]=CONVERT_IMPLICIT(int,[STG2].[RBS].[STG_VNPR].[VNESH_PR] as [VNPR].[VNESH_PR],0), [Expr1017]=CONVERT_IMPLICIT(int,[STG2].[RBS].[STG_VNPR].[MY_OBJID] as [VNPR].[MY_OBJID],0)))
| | |--Table Scan(OBJECT:([STG2].[RBS].[STG_VNPR] AS [VNPR]))
| |--Compute Scalar(DEFINE:([Expr1016]=CONVERT_IMPLICIT(int,[STG2].[RBS].[STG_Vznos].[OBJID] as [RBS].[OBJID],0)))
| |--Index Scan(OBJECT:([STG2].[RBS].[STG_Vznos].[IX_objid] AS [RBS]), ORDERED FORWARD)
|--Index Delete(OBJECT:([STG2].[RBS].[STG_Vznos].[IX_objid]) WITH ORDERED PREFETCH)
|--Sort(ORDER BY:([STG2].[RBS].[STG_Vznos].[OBJID] ASC, [Bmk1013] ASC))
|--Table Spool

Кто-нибудь пояснит, как работает этот запрос.
Все понятно до первого Hash Match+Filter. А вот что дальше . . . .?
18 дек 09, 18:06    [8088771]     Ответить | Цитировать Сообщить модератору
 Re: Почему используется Spool  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
Так, второй Hash Match то же стал ясен.
Непонимание начинается с таинственной операции Top
18 дек 09, 18:12    [8088813]     Ответить | Цитировать Сообщить модератору
 Re: Почему используется Spool  [new]
Glory
Member

Откуда:
Сообщений: 104760
--__Александр__--
Так, второй Hash Match то же стал ясен.
Непонимание начинается с таинственной операции Top

А чего в нейт таинственного ?

The Top logical and physical operator will scan the input, returning only the first specified number or percent of rows. The Argument column can optionally contain a list of the columns that are being checked for ties. In update plans, the Top operator is used to enforce row count limits.
19 дек 09, 18:41    [8090768]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить