首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF预生成视图。如何确保EF正在使用这些视图

EF预生成视图。如何确保EF正在使用这些视图
EN

Stack Overflow用户
提问于 2012-03-26 14:14:29
回答 1查看 176关注 0票数 1

我的网站上有几个性能问题。我使用的是asp.net mvc 2和实体框架4.0。我买了一个来查看EF生成了什么样的SQL请求。

例如,一些页面需要3到5秒的时间打开。这对我的当事人来说太过分了。

为了查看EF生成的SQL是否存在性能问题,我使用我的分析器并在中复制/粘贴生成的SQL,以查看执行计划和Sql统计信息。结果显示在不到一秒钟。

现在我已经消除了SQL查询,我怀疑EF在buidling查询步骤中。

我一步一步地遵循msdn来预生成我的视图。我没有看到任何表现上的提高。

如何确保我的查询使用这些预生成的视图?

我能做些什么来提高我的网站的性能吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-26 14:18:53

首先,请记住,预编译查询在第一次运行时仍然要花费同样长的时间(实际上稍微长一点),因为这些查询是在第一次调用时编译的。在第一次调用之后,您将看到单个查询的性能显著提高。

然而,对于所有的性能问题,您会发现最好的答案是:首先找出最耗时的时间,然后在这方面进行改进。除非您已经运行了分析器,并且知道您的系统处于阻塞的位置,否则您花费的任何试图加快速度的时间都可能被浪费。

一旦你确定了什么是最需要的时间,就有很多可能的技术可以用来加快速度:

  1. 缓存不经常更改的数据
  2. 重组您的数据访问,以便在较少的往返行程中提取所需的数据。
  3. 确保在执行数据库查询时不会提取超出所需的数据。
  4. 买更好的硬件。
  5. ..。和其他许多人

最后一个注意:在实体框架5中,他们计划实现自动查询缓存,这将使预编译查询几乎毫无用处。因此,我建议只在你确信你会得到重大改进的地方去做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9873792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档