从某些情况来看,EF非常慢:阻止EF模仿`选项(重新编译)`

时间:2015-05-12 10:47:15

标签: entity-framework

我在winform项目中使用EF6

我对视图使用查询来填充DataGridView。

在没有条件的情况下,填充最多需要3s(2500行)。

对于特定条件,涉及...where exists(select...)填充最多需要13s(212行)(linqpad中的相同性能)。

我看了:

与我的情况非常相似。

在我的两种情况下(有和没有条件),SQL查询在SSMS中运行不到1秒(这使我认为不涉及SQL查询复杂性)

我的本​​地SQL Server是Microsoft SQL Server 2012 (SP1) - 11.0.3153.0 (X64) Jul 22 2014 15:26:36 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

我在远程SQL Enterprise 服务器上获得了更好的性能(小于5秒)。

这是否意味着EF应用程序查询视图不适用于 Express Edition

我还能在哪里了解原因?

===== =====

EF:

Trace with EF

SSMS:

Trace with SSMS

性能有10倍。必须找到一些东西!

===== =====

我设法在SSMS查询结束时使用option (recompile)降低了EF的SSMS性能。

如何阻止EF模仿option(recompile)

===== ===== =====

总是希望有一些想法,但是知道EXEC sp_updatestats似乎解决了这个问题。

0 个答案:

没有答案