• Entity Framework性能影响因素分析


    1、对象管理机制-复杂
    为更好的管理模型对象,EF提供了一套内部管理机制和跟踪对象的状态,保存对象一致性,使用方便,但是性能有所降低。

    2、执行机制-高度封装
    在EF中,所有的查询表达式都会经过语法分析、解析SQL语句、然后调用底层的ADO.NET对象去执行,中间的这些环节导致性能有所降低。

    3、SQL语句-低效
    EF采用映射机制将对象操作转换成SQL语句,SQL语句一般的基于标准模块生成的,不会进行特殊优化,和直接编写SQL语句操作数据库相比,效率会打折扣,复杂操作更为明显。


    状态管理机制优化

    AsNoTracing()方法
    1、添加AsNoTracing()方法后,对象将不被状态管理,查询性能提高
    2、返回的实体将不再DbContext中缓存
    3、适合场景:纯粹查询

    禁用自动跟踪变化

    分析
    1、关闭前,当执行Add()操作时将会耗费大量的性能,会导致DbContext遍历所有缓存的Entry,比较原始值和当前值,而这个操作会非常耗费性能
    2、关闭后,使用Add()方法告知DbContext中对象的变化即可,如果是删除使用Remove()方法,如果是修改则还需要通过State属性显示告知变化
    3、适合场景:大批量操作数据(添加、删除、修改)

  • 相关阅读:
    CORS(跨域)请求总结和测试
    使用parted 创建一个大于2T的分区
    Linux下网络设置
    Linux中文件查找,压缩和打包指令
    使用switchshow/supportshow命令确认Brocade交换机型号(转载)
    光纤交换机端口故障排查
    博科5300光纤交换机内存故障处理
    AIX用户和组管理
    AIX 逻辑卷简介
    AIX中文件系统管理
  • 原文地址:https://www.cnblogs.com/ahao214/p/9431910.html
Copyright © 2020-2023  润新知