Sql server select子句中的子查询与应用运算符性能
我正在测试select子句和EXTER apply中相关子查询的性能。为什么select子句中的相关子查询的性能要优于外部应用 -select中的相关子查询--Sql server select子句中的子查询与应用运算符性能,sql-server,tsql,Sql Server,Tsql,我正在测试select子句和EXTER apply中相关子查询的性能。为什么select子句中的相关子查询的性能要优于外部应用 -select中的相关子查询-- SELECT (SELECT TOP 1 L.LineNum FROM RDR1 L WHERE T1.Docentry = L.DocEntry ORDER BY L.Linenum DESC) as LineNum, T1.Docentry, T1.Docdate, T
SELECT
(SELECT TOP 1
L.LineNum
FROM RDR1 L
WHERE T1.Docentry = L.DocEntry
ORDER BY L.Linenum DESC) as LineNum,
T1.Docentry, T1.Docdate, T1.CardCode, *
FROM
ORDR T1
--36 sec--
-外敷-
SELECT
L.LineNum,T1.Docentry,T1.Docdate,T1.CardCode,*
FROM
ORDR T1
OUTER APPLY
(SELECT TOP 1
T2.LineNum
FROM RDR1 T2
WHERE T1.Docentry = T2.DocEntry
ORDER BY T2.Linenum DESC) as L
--42sec--
你们看了查询计划了吗
Select max(T2.LineNum), T1.Docentry, T1.Docdate, T1.CardCode
FROM ORDR T1
join RDR1 t2
on T1.Docentry = T2.DocEntry
group by T1.Docentry, T1.Docdate, T1.CardCode
谢谢我们可以使用这段代码,但我想说的是,通常应用的速度应该比相关的子查询快。您看过查询计划了吗?我建议你在这两种情况下都应该使用这个。实际上,您需要使用查询和数据进行测试。