我将此查询作为存储过程:
SELECT ID
FROM dbo.tblRentalUnit
WHERE (NOT EXISTS
(SELECT 1 AS Expr1
FROM dbo.tblTenant
WHERE (dbo.tblRentalUnit.ID = UnitID)))
在 Microsoft SQL Server Management Studio Express 中,它在 16 毫秒内执行。当我将它放在 Visual Studio 2008 自动生成的类型化数据集中时,它的执行时间为 64,453 毫秒。超过一分钟。
估计和执行计划是这样的:
选择 [0%] <- 过滤 [1%] <- 合并连接(左外连接)[28%] <- 索引扫描 [16%] <- 排序 [43%] <- 聚集索引扫描 [12%]
为什么这里有这种差异,我该如何纠正?