У меня есть этот запрос как хранимая процедура:
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 мс. Больше минуты.
Расчетный план и план выполнения выглядят так:
Select [0%] <- Filter [1%] <- Merge Join (Left Outer Join) [28%] <- Index Scan [16%]
<- Sort [43%] <- Clustered Index Scan [12%]
Почему эта разница здесь и как я могу ее исправить?