问题描述
我打电话从实体框架使用以下
I am calling a stored procedure (that returns data) from Entity Framework using the query below
from sp in db.GetSale(bID, SID,m,y).Where(x => x.isActive == true)
select sp
如果我直接运行这个程序,只需2秒,但是当我通过EF调用这个存储过程,它需要10〜15秒。
If I run this procedure directly, it takes only 2 seconds, but when I call this stored procedure through EF, it is taking 10 to 15 seconds.
任何指导,以改善这种情况?我见过的其他职位在这里左右,但都没有成功。
Any guidance to improve the situation? I have seen other post here on SO but have no success
修改
下面是sqlplan我的程序 https://skydrive.live.com/redir?resid=87DCBD5D3E9AAA57!374
Here is sqlplan for my procedurehttps://skydrive.live.com/redir?resid=87DCBD5D3E9AAA57!374
推荐答案
我怀疑参数嗅探。
尝试采取反参数嗅探code。在你的程序。 (请在使用前将参数分配给本地变量)。
Try applying anti-parameter sniffing code in your procedure. (Assign parameters to local variables before using them).
http://blogs.technet.com/b/mdegre/archive/2012/03/19/what-is-parameter-sniffing.aspx
这篇关于存储过程是在实体框架缓慢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!