【发布时间】:2011-11-30 21:20:52
【问题描述】:
我有以下疑问:
SELECT I.InsuranceID
FROM Insurance I
INNER JOIN JobDetail JD ON I.AccountID = JD.AccountID
WHERE I.InsuranceLookupID IS NULL
AND JD.JobID = 28
它在大约一秒钟内执行。用作子查询时如下:
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 以在找到第一条记录后停止。为什么这需要更长的时间?
【问题讨论】:
-
请参阅stackoverflow.com/questions/424212/… 了解有关 EXISTS 的详细信息。