我有以下查询:慢查询EXISTS子查询
SELECT I.InsuranceID
FROM Insurance I
INNER JOIN JobDetail JD ON I.AccountID = JD.AccountID
WHERE I.InsuranceLookupID IS NULL
AND JD.JobID = 28
它执行约1秒钟。当用作子查询时如下:
IF EXISTS(
SELECT I.InsuranceID
FROM Insurance I
INNER JOIN JobDetail JD ON I.AccountID = JD.AccountID
WHERE I.InsuranceLookupID IS NULL
AND JD.JobID = 28
)
SELECT 1
ELSE
SELECT 0
需要90秒。这是我的理解,EXISTS应该被优化,以找到第一个记录后停止。为什么这会花更长的时间?
请参阅http://stackoverflow.com/questions/424212/performance-of-sql-exists-usage-variants以获取有关良好信息存在。 – StAlphonzo