繁体   English   中英

通过远程连接的实体框架存储过程

[英]Entity Framework stored procedure over remote connection

我使用的是EF 4,但又遇到了另一个怪癖……基本上,我有一个相当简单的存储过程,负责从SQL检索数据并返回复杂类型。 我已通过函数导入将存储过程添加到模型中。 在以下结构中或多或少。

using (ModelContainer context = GetNewModelContainer())
{
   return context.GetSummary(id, startDate, endDate, type).ToList();
} 

我应该提到上面的代码是通过远程SQL连接执行的。 执行大约需要10分钟。 但是,通过远程连接使用SQL Server Management Studio,该存储过程几乎立即执行。

仅返回大约100条记录,每个记录大约有30个字段。

当我针对客户数据库的备份在本地运行上述代码(无远程连接)时,它的执行没有任何延迟。

我对可能导致此性能下降的原因感到困惑。 10分钟是不可接受的。 我不认为这是存储过程。 由于远程连接,可能是序列化吗? 关于如何跟踪和纠正问题的任何想法?

您描述的症状通常是与错误缓存的查询计划相关的(由于参数嗅探)。

确保统计信息是最新的,如果索引分散,请重建索引。

规范参考是: 应用程序中的速度慢,SSMS中的速度快? 绝对必要的读物。

可能有用的SO链接:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM