ADO.NET团队最近讨论了ADO.NET Entity框架的各种性能特征。ADO.NET Entity框架在12月已经进入它的第三个beta版本,自那时起开发团队就开始为开发人员提供了使用该框架的相关信息。而现在,则为开发人员提供了框架性能方面的信息。
本文鞭辟入里地介绍了ADO.NET Entity框架的性能,演示了如何提高简单查询速度的方法,并阐释了框架的性能特征。
需要重点指出的是,当一个抽象层或者类似EDM(译注:指Entity Data Model)的模块被用来转换数据库的关系样式时,会带来一定的性能损失。
查询与结果
本文使用了NorthWind数据库作为模型,并创建了一个简单查询:
(NorthwindEntities ne = NorthwindEntities())
{
(Order o ne.Orders)
{
i = o.OrderID;
}
}
测试时,我们的每个查询对整个848行数据进行了10次遍历。结果很有意思,第1次运行时耗费了4241毫秒,而接下来的每次运行则平均耗费13毫秒左右的时间。最耗时的一部分内容是ObjectContext的创建,而在执行任意一个访问数据库的操作时,都会有一些耗时的操作发生。
每次操作的百分比值可以给我们一些启示:
◆装载元数据(11%)
◆初始化元数据(14%)
◆打开连接(8%)
◆生成视图(56%)
◆装载程序集(2%)
◆跟踪(1%)
◆实例化(7%)
◆其它(1%)

收藏
推荐
打印
