0
我有一個存儲過程使用臨時表在select子句中創建一些連接。 SELECT子句包含臨時表像這樣的ID列中的值:包括臨時表中的值減慢查詢
CREATE TABLE #TempTable
(
Id INT PRIMARY KEY,
RootVal INT
)
的選擇是這樣的:
Select value1, value2, #TempTable.Id AS ValKey
From MainTable INNER JOIN #TempTable ON MainTable.RootVal = #TempTable.RootVal
查詢接管一分鐘,在現實生活中,但如果運行我從它運行的選擇列表中刪除「#TempTable.Id」。
有沒有人知道爲什麼從一個#temp表中包含一個值與在連接中使用它相比有如此巨大的代價?
有多少行?臨時表上的索引? MainTable.RootVal數據類型? – gbn 2011-06-07 17:55:25
大約500000,是的,臨時表中以及MainTable.RootVal上都有一個RootVal索引。我要重做它,所以我不需要從搗固表中獲得價值,但我完全不知道問題是什麼。 – Daniel 2011-06-07 18:36:37
您可以添加查詢計劃嗎? – gbn 2011-06-08 04:56:35