查询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