我复制从SQL事件探查LINQ内置SQL查询这里是很烦人一下:Linq查询超级慢?
它的前缀选择..columnNames ..从(选择..columnNames ..从(选择视图的CNAME) 点评:2条SELECT语句这里是不必要的
此查询需要14秒,执行
当我删除的最后一行,包含类似的@p_ LINQ _0所有PARAMS。 ..并在条件中填写参数值并执行完全相同的动态查询,这需要1秒或更少的时间。否则,这个查询在从sql studio执行时需要0秒。这是linq的跛脚。
我可能会移动到这个存储过程,但我很害怕使用LINQ现在
经过进一步研究中,我发现:
查询1:
exec sp_executesql N'SELECT * from TableView WHERE Id = @Id', N'@Id int', @Id = 1
查询2 :
exec sp_executesql N'SELECT * from TableView WHERE Id = 1'
查询1需要12秒,查询2需要0秒。这解释了为什么linq查询很慢。所以,现在,这是否意味着我应该总是使用存储过程还是缺少一些东西?
为什么不能微软修复Linq查询建筑,难的是如何解析该字符串和替换,而不是通过那些PARAMS作为参数传递给sp_executesql的
你在说什么查询? – Joren 2011-03-25 18:36:17
这里有问题吗? – forsvarir 2011-03-25 18:36:20
没有看到LINQ查询或生成的SQL,很难给你任何帮助。 – 2011-03-25 18:36:37