我在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:
SSMS:
性能有10倍。必须找到一些东西!
===== =====
我设法在SSMS查询结束时使用option (recompile)
降低了EF的SSMS性能。
如何阻止EF模仿option(recompile)
。
===== ===== =====
总是希望有一些想法,但是知道EXEC sp_updatestats
似乎解决了这个问题。