写点什么

使用 Entity Framework 5 的性能注意事项

  • 2012-04-30
  • 本文字数:847 字

    阅读完需:约 3 分钟

虽然 Entity Framework(EF) 5 承诺带来了超越 EF 4 的大幅性能提升,但为了更有效地使用 ORM,我们仍然需要关注一些注意事项——即视图生成、缓存、自动编译的查询、查询执行选项及设计时(Design Time)。

微软已经发布了一份白皮书,概述使用待发布的 Entity Framework 5(它将作为即将到来的.NET 4.5 的一部分发布)时应关注的各种性能注意事项。

以下是一些需要注意的地方:

  • 冷查询执行 vs. 暖查询执行(Cold-vs-Warm query execution)——视图生成这一步(用于从数据库模式到概念模式或从概念模式到数据模式的必要转换)会增加第一次运行查询时的开销,后续运行会因为视图缓存的缘故会更快一些。用户可以通过预生成视图来提升性能
  • 缓存——在对象层次(特别是结合禁用 AutoDetectChanges 改善 DbContext Find() 性能),可用的缓存有查询计划缓存(Query Plan Caching)、元数据缓存(MetaData Caching)及结果缓存(Results Caching)。EF 仍然没有提供二级缓存,不过我们可以参考一些指南进行实现——如 CodePlex 上的示例,以及 Julia Lerman 的文章“ Entity Framework 与 Windows Azure 中的二级缓存”;
  • 可选的无跟踪查询(没有状态跟踪的开销)。目前该选项只对 ObjectQuery 可用,没法适用于 DbSet 及 DbQuery 类;
  • 微型 ORM 风格的快速查询,如数据库上执行SQL 查询以及 ExecuteStoreQuery
  • 设计时注意事项——每个层次对应一张表(Table-per-hierarchy,简称 TPH)vs. 每个类型对应一张表(Table-per-Type,简称 TPT)vs. 每个类对应一张表(Table-per-Class,简称 TPC);其中 TPT 在查询复杂度及性能方面表现最差;
  • 延迟加载 vs. 预先加载 (Lazy-vs-Eager loading)。

Entity Framework 是由微软提供的一款面向.NET 应用程序的商业对象关系映射框架。除了EF 之外,.NET 开发人员还可以选择的一些(开源和商业包括在内)产品有 NHibernate LightSpeed 。另外,还有一些轻量级的微型 ORM 模型像 Dapper.NET PetaPoco Massive

查看英文原文: Entity Framework 5 - Performance Considerations Entity Framework

2012-04-30 20:313605
用户头像

发布了 125 篇内容, 共 44.6 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

【极客大学】模块一作业

冬天的树

3.4 Go语言从入门到精通:包管理工具之Go module

xcbeyond

go modules Go 语言 4月日更

架构实战营-模块一作业

俞立夫

架构实战营

算法训练营 - 学习笔记 - 第一周

心在飞

Hadoop 3.x 版本相对于 Hadoop 2.x的新特性

五分钟学大数据

hadoop 4月日更

sql执行顺序优化

大数据技术指南

sql 4月日更

模块一,学习总结

俞立夫

架构实战营

与JVM做朋友系列(3)又见Class字节码

码界西柚

JVM X86 stack register

回归本我还是追逐名利,技术人在中年危机下的抉择?

刘华Kenneth

管理 职场 中年危机

华仔架构实战营 - 作业 - 模块1

曲元洪

架构实战营

如何做决策?

石云升

决策 28天写作 职场经验 管理经验 4月日更

区块链:颠覆其外,守旧其中

CECBC

互联网

区块链开发主流语言和核心优势

CECBC

区块链

JavaScript 图片转文字,文字转语音

空城机

JavaScript 大前端 4月日更 tesseract 图片转文字

8x Flow 业务建模法(二):再看什么是业务逻辑

胡皓

领域驱动设计 DDD 业务建模 8xFlow 业务逻辑

外网访问Ubuntu下的Tomcat

U2647

tomcat ubuntu 4月日更

强化学习—DQN:不讲前世,就论今生

打工人!

深度学习 强化学习 深度强化学习 图解源码分析 DQN

零基础学Tableau系列 | 04—标靶图、甘特图、瀑布图

不温卜火

数据可视化 数据清洗 4月日更

架构实战营 - 模块一作业

凯迪

架构实战营

「架构师训练营 4 期」 第十三周 - 001&2

凯迪

架构师训练营 4 期

区块链走红 江苏多行业应用迈入"可信时代"

CECBC

农产品

第13周课后练习-数据应用(二)

潘涛

架构师训练营 4 期

华仔训练营第一次作业

方堃

架构实战营 模块 1 课后作业

eoeoeo

架构实战营

第一课作业

杰语

架构师实战营 模块一作业(微信业务架构和学生管理系统架构备选方案)

代廉洁

架构实战营

架构实战营 模块一:课后作业

👈

架构实战营

架构实战营 模块一:学习总结

👈

架构实战营

博客主题用腻了?来试试赛博朋克 2077 主题吧!

清秋

CMS Hexo 博客 4月日更

没有lrzsz,怎么传文件到服务器?

运维研习社

运维 工具

架构实战营-模块1-作业

笑春风

架构实战营

使用Entity Framework 5的性能注意事项_.NET_Roopesh Shenoy_InfoQ精选文章