このクエリをストアド プロシージャとして使用しています。
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 ミリ秒で実行されます。1分以上。
見積もりと実行計画は次のようになります。
選択 [0%] <- フィルター [1%] <- マージ結合 (左外部結合) [28%] <- インデックス スキャン [16%] <- 並べ替え [43%] <- クラスター化インデックス スキャン [12%]
この違いはなぜですか?どうすれば修正できますか?