您现在的位置: > 首页 > 网站建设 > 网页编程
>> 最新教程
>> 热门教程
>> 最新游戏资讯
>> 热门游戏资讯
挖掘ADO.NET Entity框架的性能
作者:本站                来自:安迪教程网                 加入时间:08-07-21                进入论坛讨论

  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%)

  耗时百分比值最大的是视图生成,它达到了惊人的56%.既然视图生成是造成性能损耗的罪魁祸首,那么开发人员最好是使用命令行工具EDM生成器(EdmGen.exe),运行时需要加上视图生成命令参数(/mode:ViewGeneration),它的输出内容为一个代码文件(C#或者VB.NET),可以包含在项目中。视图的预生成可以将启动时间降低到2933毫秒,而对于循环遍历操作,整个时间可以降低28%.生成视图并随着应用程序一起发布是提高性能的妙方,但其缺点则在于视图不再是动态的,一旦模型发生改变,就需要重新生成以保持同步。

<<< << < 1 2 3 > >> >>>
联系方式:QQ:6084884 email:agwcn@126.com 粤ICP备05055782号
本网站中发布的文章只代表发表人的个人观点,不代表安迪教程网网站的立场
copyright© 2000-2004 安迪教程网 All rights reserved agwcn.com