ADO.NET性能的优化 ADO.NET性能的优化

ADO.NET性能的优化

  • 期刊名字:现代计算机(专业版)
  • 文件大小:304kb
  • 论文作者:刘万授
  • 作者单位:华南师范大学计算机系
  • 更新时间:2020-09-30
  • 下载次数:
论文简介

应用技术ADO.NET性能的优化刘万授.(华南师范大学计算机系,广州510631 )摘要:本文主要分析了ADO.NET中两种典型的数据访问模式的性能,以及有肋于提高数据访问性能的存储结构和连接池技术并进一步研究了ADO.NET中其他优化数据访问性能的方法。关键词:ADO .N ET ;DataSet ;DataReader ;存储过程;连接池1概述它以只读的方式遍历结果集。由于不需要以随机ADO.NET是.NET中的一个核心技术是一个的方式访问结果集,因此,就不会增大额外的系统.功能强大的数据访问类库。然而ADO.NET并不是开销,当执行纯粹的读操作,DataReader能提供高ADO的升级版本,它是全新的面向对象模型与效的数据访问性能;当执行一个搜索并返回多个结果集时,DataReader更能大大提高性能。每-个时ADO相比,它具有平台无关性、可伸缩性和高性能刻只有-行记录缓存在内存中,因而内存开销也特的数据访问等优点,比ADO更适应于分布式及别少。由于连接模式是提供快速、只向前、只读的Internet等大型应用程序环境。ADO.NET允许以多来自数据库的数据流,因此在-些方面采用该模式种有用方式来访问数据如对数据直接访问的连接并不适当,当应用程序需要以下功能时可使用模式DataReader也可通过缓存数据结果集的离线DataReader来提高数据访问的速度:存取的断开模式DataSet ,DataSet 可以说是专门为①不需要缓存数据;.NET平台设计的数据存取结构。ADO.NET同时也②正在处理的结果集太大而不能全部放入内为开发人员提供了丰富的数据访问对象,比如用于存中;连接的Connection对象,用于对数据库进行操作的③需要迅速一次性访问数据采用只向前的只命令Command对象以及为断开模式提供粘合剂的读方式。数据适配器DataAdapter对象等等。怎样充分地利默认情况下,DataReader对象在Read方法中用这些数据访问模式以及相关的访问对象来开发把整个行载入内存中这允许你随机访问当前行的高性能数据访问程序?这就是本文所要研究的问任意列。如果随机访问列是不必要的,可以通过把题。本文从对ADO.NET的访问模式的剖析入手Command Behavior Sequential Access传递给Execute深入分析各种访问模式的性能并且对不同的能提;Reader调用来提高性能。这改变了DataReader的现高数据访问性能的技术和方法做-全面的分析。默认行为,只在需要时才把数据载入内存并且要代2两大数据访问模式求按次序访问返回的行中的列值,因此可以进一步计节省内存开销提高访问的速度。对读取大量的二算(1涟接访问模式(DataReader)进制数据时这样更可以大大提高访问速度。机连接访问模式就是用户同数据库交互时需要当要结束从DataReader中读取数据,但是仍连接-个数据库实例,向数据库执行命令再关闭然有大量的未读取的结果等待,那么可以调用连接。连接模式是通过DataReader对象来实现的,Command的Cancel取代DataReader的Close 来提第为了得到一个DataReader对象,必须在已经建立高性能。中国煤化工: Close引起它检索连接的基础上执行Command.ExecuteReader方法。未读取YHCNMH流后关闭游标。调DataReader是连接的、只向前读的、游标样式的类用Command的Cancel删除服务器上的结果,因此第0 MODERN COMPUTER 2010 .应用技术当DataReader关闭时,它不需要再读取结果,因而贵,因为连接要使用宝贵的系统资源,例如内存和能提高性能。DataReader对象提供了快速的数据访网络带宽。而连接池可以减少连接所消耗的时间问,但却不具备灵活访问数据的功能,如果程序要和系统资源。连接池允许我们通过-个缓冲池重求对数据进行大量的操作或者要求能随机访问数用现有的连接对象避免每次使用连接对象时都要据,,可以采用下面讨论的断开访问模式。新建一个对象。采用连接池之后,只要少量的连接( 2 )断开访问模式( DataSet )对象就可以满足大量客户端的需要。DataSet 完全是一个非连接的、与数据源无关每一个连接池都与一个独立的连接字符串及的类。非连接性表现为,当数据适配器把所需要的其事务上下文关联。每次打开一个新的连接数据数据载入DataSet后就可以断开数据源而允许对提供者会尝试将指定的连接字符串与连接池的字数据进行操作。DataSet 总是在脱机模式下对数据符串进行匹配。如果匹配失败数据提供者创建-进行操作。本质上,DataSet是内存中的高速缓存;个新的连接并将它加入连接池。连接池被创建之区用于高速缓存关系型的数据。而数据源无关性后除非进程结束,否则不会被拆除并且维护一个主要表现在,不论DataSet中包含的数据是来自不活动的或者空的连接池不需要多少开销。连接.XML文档、关系型数据库还是通过用户接口以编程池创建之后系统会创建一些连接对象并将它们加的方式输入的数据的表示方式都是相同的。通过缓入连接池直至达到额定的最小连接对象数量。以冲重复使用相同的数据集合可以提高性能(例如排后系统会根据需要新建和加入连接对象,-直到序、搜索或过滤数据)并且避免了服务器长时间维达最大连接对象数量限额为止。如果程序请求一护数据源连接所带来的开销。在使用DataReader返个连接对象时没有空闲的连接对象可用,且连接池回的行上进行扩展处理,将使连接存在的时间比必里面的对象数量已达到上限则请求被放入队列,要的更长,从而降低效率。另-方面 与DataReader--旦有连接被释放回缓冲池就立即取出使用。除.相比,DataSet 需要内存的开销,如果内存不是要考了服务器的连接池功能,ADO.NET 还提供了客户虑的问题,并且需要对数据进行修改或者任意的检端连接池功能,可供单个进程中参与连接的两个数索,那么完全断开连接内存中的数据缓存所提供的据提供程序使用。充分地采用连接池,可以改善性功能就可以更好地满足程序的需要。能并促进应用程序存取数据的可伸缩性。对于一些经常没有发生变化的结果集,可以通4使用存储过程来提高性能过缓存DataSet来提高应用程序的性能,即不是从数据库中为每次检索请求数据,而是将DataSet 放存储过程是数据库的一个关键组件,它在性能入服务器的缓存中,每次请求时,可 以检查DataSet :和开发方面有很多优点。存储过程是一组SQL语的缓存,在不存在DataSet 的缓存版本的情况下才句,这些语句是已编译到被命名的单一的单元中连接到数据库,这样可以减小连接的开销提高访被编译后的存储过程具有原子性存储在要使用它问性能。们的数据库中。它可以是简单的只有一个单-的另外,还可以采用类型化的DataSet来提高性SELECT语句,也可以包含多个执行复杂计算和更能。类型化DataSet是从标准DataSet 类继承而来新许多表的语句。的,由于在标准DataSet中,每次启动应用程序时在程序中使用存储过程能提高访问数据库的必须动态建立数据的架构(其中包括表、关系、列速度。与标准的SQL语句不同存储过程是经过数现等),但使用类型化DataSet可以把数据的架构预据库编译和优化的其中的优化操作包括使用存储代先在派生类中建立起来。这就是说,-旦在设计时过程在运行时所需要的执行计划的信息,并且缓存计建立了类型化的DataSet,在运行时就不再需要建了该执行计划。有了优化的执行计划执行存储过立数据的结构了。如果在设计阶段就知道了数据程时会节约很多的时间在多次调用存储进程时更机的架构通常将使用类型化DataSet。是明显。另一方面存储过程能减少网络通信客总户应用中国煤化工句就可以执行多第采用连接池条SQL!YHCNMHG程能提供众多的优数据库连接是很有价值的资源但是它也很昂点,因此在应用ADO.NET访问数据库时,应该考九七MODERN COMPUTER 2004.10期应用技术虑使用存储过程来提高性能,ADO.NET的三种数它被关闭的话)如果Fill或Update方法打开了连据提供程序都支持存储过程。在ADO.NET中使用接,Fill 或Update将在操作完成时关闭它。为了提存储过程时只要把相应的命令对象的类型设置成高性能,只在必要时保持数据库连接打开,同时为StoredProcedure然后传递存储过程的名称就可以多个操作减少打开和关闭连接的次数。调用存储过程并且可以设置输入、输出类型的参(5)用预先排序的数据数来传值。ADO.NET对象模式可以很容易地实现排序。可以创建一个DataView对象并设置其Sort属性;5其他方法ADO.NETruntime查看新的排序表达式并为视图(1选择适当的数据源重编索引。该步骤是在内存中实现的,但速度并不为了使应用程序获得最佳的性能需要使用最央。排序的花费很高,更重要的是,它并不是个线适合数据源的.NET框架组件数据提供程序。当连性操作(linearoperation)对一组数据进行排序需接到SQL Server7.0及以上版本时,为了获得最佳要n* log(n)的计算成本随着需要排序的条目数量性能,应该使用SQLServer.NET数据提供程序。的增加,直 线增加的计算成本是很大的。在Web应SQLServer.NET数据提供程序设计为直接访问用程序中动态排序对性能的影响是相当大的。因SQL Server没有其他附加的技术层。而其他数据源此应该限制应用程序中的排序尽可能地运用预的数据访问则存在要穿越托管-非托管边界的开销。先排序的数据。(2往返操作在任何时候创建用于任何数据访问的应用程结语序,首先要使得往返数据源的次数绝对最小并且ADO.NET是Microsoft.NET 战略的一个组成往返的数据量最小。除了客户程序所需要的数据部分是为分布式程序开发量身定做的,如何适当之外绝对不要请求更多的数据。当使用不返回行地利用ADO.NET提供的强大功能来提高数据访的SQL语句时类似修改数据(例如插入、更新或问的性能这是熟悉ADO.NET的开发人员所关心者删除)或者只返回输出参数或值,使用Command.的问题。本文在充分分析了ADO.NET各组件的工ExecuteNonQuery来减少往返开销。如果你希望返作原理后给出了优化性能的技术和方法。当然,回单个值,例 如Count、Sum、 或者Avg ,可以使用上面所分析的各种技术和方法都具有-定的适应Command.ExecuteScalar. ExecuteScalar 返回第一行范围只有充分地分析所要设计的程序,才能极大第-列的值,返回的结果集是数量值。ExecuteScalar地优化程序访问数据的性能。通过-步就完成,不仅简化了代码而且提高了性能。参考文献[ 1 ]Kouresh Ardestani ,Kevin Hoffman ,Donald Xie.高效掌握(3采用类型化方法访问结果集中的列值ADO.NET-- C# 编程篇.张哲峰译.北京清华大学出AOD.NET提供了多种从返回的结果集中访问版社,2003行中的列的值,可以按下面的一个方法检索行的列[2陶刚. ADO.NET使用经验集. htp :// tech.ccidnet.com/的值:按名字指定列、按序号执行列或者使用-一个pub/ article/c317_ a45023_ pl1.html 2003/4/28类型化的方法并以列号作为参数。第-种方法提.[ 3徐静.ADO.NET调用存储过程的方法.电脑与信息技术,现代供了编程的可读性但它必须以一个字符串的形式2003(3)计传递列名并迫使程序在当前行的各行中搜索具有[ 4 Paul Dickinson ,Fabio Claudio.ADO.NET高级编程一-算指定名字的列,因此降低了访问的性能;第二种方VB.NET编程篇.谭建波,李立新译.北京清华大学出版社2003机法能把指定的列的值返回但由于没有指定返回数[5 ]John Kauffman ,Brian Matsik 等. ASP.NET数据库入门经据的类型,因而可能存在值的类型转化。因而使用..典-- -C#编程篇.张哲峰黄翔宇译.北京清华大学出第二种方法,能提高访问列的值的性能。第( 4 )用数据适配器DataAdapter 优化连接[6孟现中国煤化工据访问模型研究.微数据适配器DataAdapter的Fill和Update方MHCNMH G九法自动地为相关的命令属性打开特定的连接(如果(收稿日期2004-05-08 )七(英文摘要见第55页)兜8 MODERN COMPUTER 20010网络纵横阻力。必须指出的是领导层的确认是企业网络安认的基于时间的动态安全模型,而安全策略就是动全策略能否顺利实施的关键环节。态安全模型的核心。在企业网中建立网络安全策实施是对安全策略最好的检测,在实施过程略大致可以分为风险分析和评估、书写各项网络安中一方面会发现所制定的安全策略的不足,另-全策略、评估和实施等步骤整个过程将是一个不方面也会根据实际情况的变化为安全策略提出新断完善的、螺旋式并不断上升的过程。的要求,这些为安全策略的进一步完善提供了源动力。安全策略不断完善的过程是一个螺旋式、不参考文献断上升”的过程。[1何海涛罗笑南郭清顺.Newflow在边界网流量测量中的,应用研究.计算机工程与应用2004( 4)结语[2 Scott Barman. Writing Information Security Polices. New随着企业信息化的不断深入,-个企业对企业Riders Publishing,2002[3 ERT. http :/ www.cert.org网的依赖程度越来越高因而必须要正视网络安全[4 BANS. http :/ www sans.org问题、建立合理的安全策略和安全框架,以确保企(收稿日期2004-05-08 )业网能够可靠、正常、高效地运行。P2DR 是一套公The Study on the Security Policy ofthe Enterprise Ne tw orkLIU Bao-lu'GU L2( 1. Faculty of Information Technology Macav University of Science and Technology, Macao ;2.Guangzhou City Investigation Design and Research Institute of w ater Conservancy and Hydropower, Guangzhou 510640 China )Abs tract :This paper introduces P2DR(Policy ,Protection ,Detection ,Response),which is the important dynamic securitymodel, and proposes that to establish a sensible security policy is the key to guarantee the security of theenterprise network. Also it iluminates how to develop the successful network security policies.Key words : P2DR ;Security Policy ;Enterprise Network(上接第38页)P erformance Optimizations of ADO.NET现代计LIU Wan- -shou笪机( Department of Computer Science, South China Normal University, Guangzhou 510631 China )Abs tract :This paper analyzes the performance of two typical data access中国煤化工he sored第procedure and connction pooling technology which are bene. access .performance. Other ways for optimizing data access performanc.MYHCNMHG_paper.九Key words :ADO.NET ;DataSet ;DataReader ;Stored Procedure ;Connection Pooling七MODERN COMPUTER 2004.10期

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。