提高entity framework 性能,要注意哪些事情

 我来答
shihoumacili
高粉答主

推荐于2016-02-07 · 每个回答都超有意思的
知道大有可为答主
回答量:1.1万
采纳率:87%
帮助的人:487万
展开全部

提高entity framework 性能的注意事项如下:

  1. 分页的时候,尽量在数据库里面去分页.

  2. 尽量禁用延迟加载,尽量使用预加载和显式加载查询.

    如果启用延迟加载,这样会造成多次往返数据库查询的.势必造成性能低下.

  3. 注意事务的简短性.

    在使用事务时,要尽量把查询语句或者其他响事务外的语句移在事务外执行.不然让一个事务的时间太长了,就容易引起资源死锁的问题.

  4. 查询出来的实体,如果不考虑删除和修改,请用NoTracking

  5. 批量删除和修改,不要用先把实体查询出来,然后再逐个删除和修改.这样会产生大量的语句,效率肯定会低.

  6. 使用已编译的查询,虽然到EF5.0, LINQ 查询是自动缓存的.但使用编译查询会比自动缓存的效率高.

  7. 对于复杂的查询,要随时监控生成的查询语句.

    毕竟EF生成的语句,往往比生成的语句更加复杂,这个时候就要考虑是否通过其他方式来提高性能.


数据查询性能表:

城南明月羿当年
2015-05-31 · 知道合伙人生活技巧行家
城南明月羿当年
知道合伙人生活技巧行家
采纳数:24666 获赞数:123228
计算机爱好者

向TA提问 私信TA
展开全部
 1、分页的时候,尽量在数据库里面去分页。
  2、尽量禁用延迟加载,尽量使用预加载和显式加载查询。
  3、注意事务的简短性。
  4。查询出来的实体,如果不考虑删除和修改,请用notracking
  5。批量删除和修改,不要用先把实体查询出来,然后再逐个删除和修改。这样会产生大量的语句,效率肯定会低。
  6。使用已编译的查询,虽然到ef5。0, linq 查询是自动缓存的。但使用编译查询会比自动缓存的效率高。
  7。预生成视图,
  8。还有一点,就是对于复杂的查询,我们要随时监控生成的查询语句。
  转载,仅供参考。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式