【发布时间】:2012-02-27 02:20:53
【问题描述】:
我正在使用 EF 4,但我被另一个怪癖难住了……基本上,我有一个相当简单的存储过程,它负责从 SQL 中检索数据并返回一个复杂的类型。我通过函数导入将存储过程添加到我的模型中。它或多或少在以下结构中。
using (ModelContainer context = GetNewModelContainer())
{
return context.GetSummary(id, startDate, endDate, type).ToList();
}
我应该提一下,上面的代码是通过远程 SQL 连接执行的。执行需要将近 10 分钟。但是,通过远程连接使用 SQL Server Management Studio,存储过程几乎可以立即执行。
返回的记录只有100条左右,每条记录大约有30个字段。
当我针对客户数据库的备份在本地(无远程连接)运行上述代码时,它会毫无延迟地执行。
我不知道是什么导致了这种性能下降。 10分钟是不可接受的。我不认为这是存储过程。可能是由于远程连接导致的序列化?关于如何追踪和纠正罪魁祸首的任何想法?
【问题讨论】:
标签: c# sql sql-server entity-framework entity-framework-4