写点什么

使用 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:313183
用户头像

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

关注

评论

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

火山引擎DataLeap:在数据研发中,如何提升效率?

字节跳动数据平台

运维 数据研发 企业号 4 月 PK 榜 任务模板

知名直播App被苹果商店下架,或涉及侵权问题

曲多多(嗨翻屋)版权音乐

ios iphone 软件开发

面试还不懂JVM性能调优,看这篇文章就够了!

程序员小毕

程序员 面试 后端 JVM jvm调优

提交代码「前置处理」,向前一小步,效率提升「亿点点」

极狐GitLab

DevOps 极狐GitLab git hook lefthook 代码前置

如何写出CPU友好的代码,百倍提升性能?

阿里技术

cpu 代码优化

世界读书日特辑 | 华为阅读深耕精品书,让读书变得赏心“悦目”

最新动态

vue 入门知识点有哪些?

海拥(haiyong.site)

三周年连更

iOS MachineLearning 系列(4)—— 静态图像分析之物体识别与分类

珲少

如何开发一个小程序自定义组件

Onegun

小程序 前端 小程序组件

智能感知编码优化与落地实践

百度开发者中心

人工智能 视频 百度智能云

selenium源码通读·10 |webdriver/common/proxy.py-Proxy类分析

Python 测试 自动化测试 源码剖析 selenium

走进社区客户端测试 | 得物技术

得物技术

测试

您有一份直播回放待查收!

BinTools图尔兹

直播回放 版本发布

AITO问界M5:最安全、智能的座驾

Geek_2d6073

给广场舞大妈讲讲什么是大语言模型!

FN0

AIGC

智慧园区数字转型下的移动App建设策略

Onegun

移动应用 智慧城市 智慧园区

视频大文件传输的演变:从“卷轴男孩”到自动化

镭速

手势识别:让你的手成为计算机的新界面

来自四九城儿

行业分析| 视频监控——AI自动巡检

anyRTC开发者

人工智能 音视频 视频监控 自动巡检

中国垂直行业SaaS,这样走可能是新出路

ToB行业头条

0Ω电阻在PCB板中的5大常见作用

华秋PCB

电路 元器件 PCB PCB设计 电阻

2023年第十二届数据技术嘉年华(DTC)资料分享

墨天轮

数据库 oracle 云原生 智能运维 国产数据库

北大GPT解题有数学老师内味了,用人话讲难题,从高中数学到高数都能搞定

Openlab_cosmoplat

人工智能 开源社区

HarmonyOS Codelabs最新参考

坚果

OpenHarmony 三周年连更

构建云边端一体的分布式云架构,软硬结合驱动边缘计算创新场景

百度开发者中心

云计算 存储 边缘云

乌合之众再次上演,打工人将被AI一键淘汰?

引迈信息

人工智能 AI 低代码 AIGC ChatGPT

烟雾弹?突然转变?如何看待微软发声:中国是主要的对手

加入高科技仿生人

人工智能 AI 数智化 ChatGPT

“精准测试” 在商家地址专项的探索 | 得物技术

得物技术

MegEngine 使用小技巧:量化

MegEngineBot

量化 MegEngine

九科信息流程挖掘产品bit-Miner即将开放面向对象流程挖掘能力

九科Ninetech

流程挖掘

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