查詢1:(快如閃電)爲什麼sp_executesql的參數時作爲參數傳遞運行速度較慢
sp_executesql "select * from tablesView where Id = 1"
與
問題2:(太慢)
sp_executesql "select * from tablesView where Id = @Id", N"@Id int", @Id=1
tablesView - a view containing multiple joins
LINQ總是將查詢轉換爲Query2表單,因此性能非常糟糕。
問題:我需要查詢2緩慢的原因,以及任何解決方案(如果有的話)。 併爲LINQ解析。
----附加註釋:
對性能的影響肯定是因爲2列,其使用排名函數(ROW_NUMBER),但我不能避免他們我需要他們。
你有很多與ID = 1的行? – 2011-03-25 21:07:16
@Lasse,即使我有50條記錄,差異是巨大的。比如0秒和10秒,有一點是select * from table,通常是一個有很多連接的視圖。 – WhoIsNinja 2011-03-25 21:08:43
「@ id」傳入的數據類型是什麼?您可能會進行隱式轉換以防止使用索引。 – 2011-03-25 21:09:17