讓我們直奔到例如:意見遠遠低於選擇爲
查詢1:
Select *
Into #temp_v1
From View1
Select *
Into #temp_v2
From View2
select *
From #temp_v1 v1
where not exists (
Select * From #temp_v2 where key = v1.key
)
這比
快得多查詢2:
select *
From View1 v1
where not exists (
Select * From View2 where key = v1.key
)
現在顯然,我簡化了這個例子。 View1是視圖視圖,需要進行更多比較,因此難以使用聯接。
我的問題實際上不是我應該如何寫我的SQL,而是SQL Server如何在3秒鐘內執行查詢1,並在10分鐘內查詢2。
而且更重要的是有一個神奇的選項,我可以給優化器創建一個類似的查詢執行計劃1.
您可能會發現這有用... http://msdn.microsoft.com/en-us/library/dd171921%28v=sql.100%29.aspx –
我沒看過那篇文章 - 因爲我之前做過谷歌發佈;-) - 由於not exists子句,索引視圖無法使用。即使我可以,它也不回答爲什麼查詢1比查詢2要快100倍。 –