本文介绍了存储过程是在实体框架缓慢的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我打电话从实体框架使用以下

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

这篇关于存储过程是在实体框架缓慢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 14:54