我的网站上有几个性能问题。
我正在使用asp.net mvc 2和Entity Framework 4.0。我买了一个Entity Framework Profiler来查看EF生成了哪种SQL请求。
例如,某些页面需要3到5秒才能打开。这对我的客户来说很重要。
为了查看它是否是由EF生成的SQL的性能问题,我使用了我的探查器并在Sql Management Studio中复制/粘贴生成的SQL来查看执行计划和sql统计信息。结果显示不到一秒钟。
现在我删除了SQL查询,我怀疑EF在建立查询步骤。
我按照msdn一步一步预先生成我的视图。我没有看到任何性能提升。
如何确保我的查询使用这些预先生成的视图?
我有什么办法可以提高我网站的性能吗?
谢谢
答案 0 :(得分:1)
首先,请记住,预编译的查询在第一次运行时仍然需要同样长的时间(实际上稍微长一点),因为查询是在第一次调用时编译的。在第一次调用之后,您应该会看到单个查询的性能显着提高。
但是,您会发现所有性能问题的最佳答案是:弄清楚最先花费的时间是什么,然后在该领域进行改进。在你运行一个分析器并知道系统阻塞的地方之前,你花在试图加速的任何时候都可能会被浪费掉。
一旦你确定了花费最多时间的东西,就有很多可能的技术可以用来加快速度:
最后一点:在实体框架5中,他们计划实现自动查询缓存,这将使预编译查询几乎无用。因此,我建议您尽可能确保自己能够获得显着改善。