zoukankan      html  css  js  c++  java
  • EF性能优化篇一

    https://www.cnblogs.com/chenwolong/p/7531955.html

    1、合理使用AsNoTracking

      若对查询的数据不需要做任何修改,则可采用AsNoTracking;但若在查询过程中做了select映射之类的操作,则不需要添加。

    2、合理使用AsNonUnicode

      var a = context.Student.Where(A => A.StuName=="赵刚").ToList();

      var b = context.Student.Where(A => A.StuName == DbFunctions.AsNonUnicode("赵刚")).ToList();

      

      不加AsNonUnicode SQL中会有N,查询过程中需要把数据库默认格式转化为Unicode格式来查询,因此性能被拉低。如果不使用N前缀,字符串将转换为数据库的默认代码格式,可能导致不识别的字符。

    3、判断是否存在使用Any

    4、延迟加载

      为导航属性添加virtual属性,才会延迟加载数据;但延迟加载会产生严重的性能问题,如foreach

      使用Include显示连接查询将懒加载变成显示加载(需要手动导入System.Data.Entity,不然Include只能传入字符串)

        var scores = db.Scores.Take(100).Include(t=>t.Student).ToList();

    5、Contains、StartsWith、EndsWith

    6、EF预热

  • 相关阅读:
    js实现将字符串里包含手机号的中间四位替换为****
    草稿for套for
    js实现将时间戳转换成2017-05-06 09:03:02
    时间日期校验接口
    JS延迟导航nav
    nav导航
    鼠标滚动请求加载
    常用开源Jabber(XMPP) IM服务器介绍(转)
    01.base-v1.js
    Haproxy安装及配置(转)
  • 原文地址:https://www.cnblogs.com/az4215/p/10949522.html
Copyright © 2011-2022 走看看