基于.NET的数据库访问技术的优化研究.doc
《基于.NET的数据库访问技术的优化研究.doc》由会员分享,可在线阅读,更多相关《基于.NET的数据库访问技术的优化研究.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于.Net的数据库访问技术的优化研究伍锐锋 主页:.ken-wu.(2005级 信息管理与信息系统)摘要:随着计算机和因特网的飞速发展,数据库访问技术也变得越来越丰富。随着分布式数据库技术的发展与XML WEB服务的普与,人们对断开式数据库访问技术与分层数据(特别是XML文档)处理能力的要求也越来越高。.NET作为为一个被广泛接受的开发与应用平台,其平台上的数据库访问技术也就自然成了一个重要的研究课题。现今关于.NET平台的研究文章越来越多,这们都有各自的特点和适用围,但是在结构和应用上各有偏重,本文则尝试从数据库访问技术优化的角度对基于.NET平台的数据库访问技术进行研究,总结出基于.NE
2、T平台的数据库优化技术,以有助于.NET平台下广大开发与研究人员的学习与工作。关键词:.NET;数据库访问技术;ADO.NET;数据库优化; Database Access TechnologyOptimization Based On .NETWu Ruifeng(2005 Information Management and Information System)Abstract Along with the rapid development of computer and Internet technologies, the technologies of database acces
3、s are increasingly varied and plentiful. With the development of distributed database technology and the popularity of XML WEB services, the requirements of disconnected database access technology and the ability to deal with hierarchical data (XML documents in particular) are increasingly high. NET
4、 as a widely accepted development and application platform, the platform of the database access technology naturally becomes an important research topic. Today, the number of research papers on the. NET platform is becoming more and more, which have their own characteristics and the scope of applica
5、tion, but also have their own structure and emphasis on applications, this article try to do a research from a view on database access technologyoptimization based on.NET platform to sort out the main essence of database access technology on .NET platform, to help the vast numbers of researchers to
6、study and work on .NET platform.Key Words.NET;Database Access Technology;ADO.NET;Database Optimization;目录1.引言12.基于.NET的数据库访问技术2.1.NET框架介绍2.2ADO.NET体系结构概述2.3.NET Framework3.5下的LINQ特性介绍3.基于.Net的数据库访问技术的性能优化3.1优化数据访问3.1.1 DataReader和DataSet的使用3.1.2存储过程的使用3.1.3缓存数据3.2连接池技术的研究3.3其他优化技术4.总结1. 引言在现在这个信息化时代
7、,计算机技术在信息管理中的作用越来越重要,由微软公司开发提供的.Net平台可称得上是计算机开发领域的一场革命,同时它为广大计算机开发人员提供了简单强大的可视化开发工具,大大提高了开发效率,而数据库的访问技术在开发过程中又占了举足轻重的地位,如何为开发人员提供简单、高效、安全的数据库访问技术也自然成了大家关注的焦点之一.在windows系统下的数据库访问技术主要有:ODBC(开放数据库连接),DAO(数据访问对象),RDO(远程数据对象),JDBC(java数据库连接),OLE DB(对象嵌入数据库),ADO(ActiveX数据对象),随着微软.net框架的推出,基于.net平台的数据库访问技术
8、也在原来ado的基础上做出了重大的改进,升级到了全新的数据库访问技术,也是.net平台上最重要的数据库访问技术,下面我们主要对有关的数据库访问技术的进行优化研究,以期对我们的工作与学习提供帮助与参考。2. 基于.NET的数据库访问技术2.1 .Net框架的介绍.NET是Microsoft公司在2000年6月推出的“下一代互联网软件和服务战略”,1.0版本正式发行于2002年,.Net是产品、框架、服务和概念的组合,目的是为常规的或以Web Service方式来部署的软件提供基础架构,一般把.NET分解为三个部分:.NET框架、.NET产品、.NET服务,其中.NET框架是.NET应用程序开发和
9、部署所依赖的技术。.NET框架(.NET framework)是用于建立、部署、运行XML Web服务(XML Web Service)和其他应用程序(包括基于Windows的应用程序、基于Web的应用程序和针对移动设备的应用程序)的编程模型。.NET框架主要由两部分组成:公共语言运行库(Common Language Runtime)和.NET框架类库(Unified Class).公共语言运行库为开发、部署和运行应用程序提供引擎;类库则涵盖了系统函数、数据访问、组件模型、事务处理以与其他服务。如图1所示,.NET框架位于操作系统之上,为应用程序提供基础服务: .NET应用程序 硬件 操作系
10、统公共语言运行库(CLR)类库(UC) .NET框架图1:.NET框架的位置与其组成随着技术的发展,.net框架也由原来的1.0版本发展到了3.5版本了(于2008年随visual studio 2008一起发布),2.0与以后的.NET框架构成如图2所示1:PLINQTPLFUTURE RELEASELINQADO.NET Entity Framework3.5WPFWCFWFCard Space3.0WinformsASP.NETADO.NET.NET Framework2.0Base Class LibraryCommon Language Runtime图2:.NET2.0与2.0以后
11、的框架结构2.2 ADO.NET体系结构概述ADO.NET是微软.NET框架的一部分,它由一组工具和层组成,应用程序可以借此与基于文件或基于服务器的数据存储很轻松地进行通信和管理。在.NET框架中,ADO.NET类库位于System.Data命名空间下。这些类库包括连接到数据源、执行命令以与在存储、操作和获取数据等功能。对于不同的应用需要,ADO.NET设计了两种访问数据库的模式:使用DataReader对象进行基于连接的访问和使用DataAdapter对象进行的非连接的访问。由于这两种模式的设计目的不同,所以在应用程序开发中应该根据实际需要选择合适的数据库访问模式以发挥出ADO.NET的最佳
12、性能,这对于提升应用程序性能有着非常重要的意义。如图3是利用ADO.NET访问数据库的过程2:.NET应用程序DataReader对象Command对象Connection对象数据库DataSet对象DataAdapter对象连接模式非连接模式图3:使用ADO.NET访问数据库的过程ADO.NET与以前的数据访问技术相比的不同之处,就是它可以让应用程序与数据库以完全非连接的数据缓存的方式来交互以实现离线操作数据。过去使用诸如远程数据对象(RDO)来实现这样的功能,但是那只是在已有的技术上做一些修正。而ADO.NET则是基于这样的需求从头开始搭建的。非连接的数据访问(disconnected d
13、ata access)对于今天高要求的应用程序而言是很关键的,它并不是简单地直接把单个用户或系统中的实体连接到数据库。非连接的数据访问的一个要素就是用于表格数据的与数据库无关的容器。这个非连接的容器在ADO.NET类库中是用DataSet或DataTable对象来表示的。设计ADO.NET组件的目的是为了从数据操作中将数据访问分离出来。ADO.NET的两个核心组件会完成此任务:DataSet和.NET Framework数据提供程序,后者是一组包含Connection、Command、DataReader和DataAdapter对象在的组件,其中DataSet是ADO.NET的断开式结构的核心
14、组件,能实现独立于数据源的访问。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序的本地数据。DataSet是包含一个或多个DataTable对象的集合,这些对象包含数据行和数据列以与主键、外键约束和有关DataTable对象中数据的关系信息。另一个核心组件是.NET Framework数据提供程序,其设计目的是实现数据操作和对数据的快速、向前、只读访问。Connection对象提供与数据源的连接;Command对象用于返回数据、修改数据、运行存储过程以与发送或检索参数信息的数据库命令;DataReader从数据源中得到高性能的数据流; DataAdapter是连接DataS
15、et对象和数据源的桥梁,DataAdapter使用Command对象在数据源中执行SQL命令,以便将数据加载到DataSet中,并使DataSet中的数据与数据源保持一致。可以为任何数据源编写.NET Framework数据提供程序,其中ADO.NET的结构如下图所示3:DataSet.NET Framework数据提供程序DataTableCollectionDataAdapterDataTableSelectCommandDeleteCommandConnectionCommandDataReaderDataRowCollectionInsertCommandDataColumnColle
16、ctionUpdateCommandConstraintCollectionDataRelationCollectionXML数据库图4:ADO.NET结构示意图2.3 .NET Framework3.5下的LINQ特性介绍LINQ,语言级集成查询(Language INtegrated Query)自八十年代以来,随着面向对象编程技术的发展,其在各种应用领域已经进入了一个稳定的发展阶段,编程人员对于面向对象中的各种概念也已普遍熟悉并接受。但随着技术的发展,一个新的问题也同时显现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据的复杂度的问题,其中主要原因在于最主要的访问数据源与数据
17、库和XML相关。LINQ 提供了一条更常规的途径即给.Net Framework添加一些可以应用于所有信息源(all sources of information )的具有多种用途( general-purpose)的语法查询特性(query facilities),这是比向开发语言和运行时(runtime)添加一些关系数据(relational )特性或者类似 XML 特性(XML-specific)更好的方式。这些语法特性就叫做.NET Language Integrated Query(LINQ) 4。一般来讲,这类查询语句的一个重要特点就是可以并行化执行。虽然有些情况下并行可能会带来一
18、些问题,但这种情况非常少见。这样也就水到渠成地引出了PLINQ这个并行处理的LINQ类库。PLINQ可以以三种方式执行。第一种是管道处理:一个线程用来读取数据源,而其他的线程则用来处理查询语句,二者同步进行虽然这个单一的消费线程可能并不那么容易与多个生产线程同步。不过若是能够仔细配置好负载平衡的话,仍然会极大地减少存占用。第二种模式叫做“stop and go”,用于处理结果集需要被一次返回时(例如调用ToList、ToArray或对结果排序)的情况。在这种模式下,将依次完成各个处理过程,并将结果统一返回给消费线程。这个模式在性能上将优于第一种模式,因为它省去了用来保持线程同步所花费的开销。最
19、后一种方法叫做“inverted enumeration”。该方法并不需要实现收集到所有的输出,然后在单一的线程中处理,而是将最终调用的函数通过ForAll扩展传递到每个线程中。这是目前为止最快的一种处理模式,不过这需要传递到ForAll中的函数是线程安全的,且最好不包含任何lock之类的互斥语句。若是PLINQ中任意的一个线程抛出异常,那么所有的其他线程将会被终止。若是抛出了多个异常,那么这些异常将被组合成一个MultipleFailuresException类型的异常,但每个异常的调用堆栈仍会被保留。3. 基于.Net的数据库访问技术的性能优化3.1 优化数据访问在对应用程序进行性能优化时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 NET 数据库 访问 技术 优化 研究
限制150内