|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.会见|办理|数据|数据库|速率|成绩内容:
速率瓶颈成绩的提出
JDBC会见数据库的机制
分歧形式的JDBC接口的选择
Java程序中SQL语句格局的优化
软件模子中对数据库会见的计划形式的优化
将深切研讨的成绩
参考材料
关于作者
FoolsGarden@SMTH
自在Java传羽士
2001年11月
速率瓶颈成绩的提出
在企业级的Java使用中,会见数据库是一个必备的环节。数据库作为数据资本的集散地,常常位于企业级软件系统的前方,供后方的使用程序会见。在Java手艺的系统中,使用程序是经由过程JDBC(JavaDatabaseConnectivity)接口来会见数据库的,JDBC撑持"创建毗连、SQL语句查询、处置了局"等基础功效。在使用JDBC接口会见数据库的过程当中,只需依据标准来操纵,这些功效的完成不会出不对。可是,有些时分举行数据查询的效力实在闪开发职员烦恼不已,明显依据标准编写的程序,却得不到预期的运转效果,形成了全部软件的实行效力不高。
后来,我们把成绩回结于Java字节码加载和实行速率的迟缓,紧接着硬件的功效广泛失掉了加强,证实如许的设法些许是毛病的,还没有抓到真实的基本缘故原由。本文将慢慢剖解JDBC会见数据库的机制,深层剖析形成这类速率瓶颈成绩的缘故原由,并提出在现有的Java手艺框架下办理这个速率瓶颈成绩的思绪和办法。
JDBC会见数据库的机制
和形貌了Java使用程序经由过程JDBC接口会见数据库的4种驱动形式,也就是底层完成JDBC接口的形式。关于这些形式,我们一一先容:
形式4:右边的分支称为形式4,它通常为数据库厂商才干完成的纯Java的基于当地协定的驱动,间接挪用DBMS(数据库办理体系)利用的收集协定,关于企业外部互联网来讲,是一个有用的办理计划。
形式3:右侧的分支称为形式3,它一样是一个纯Java驱动,分歧于形式4的是基于收集协定。它的机制是将JDBC挪用转换为两头收集协定,然后转换为DBMS协定。两头收集协定层起到一个读取数据库的两头件的感化,可以毗连很多范例的数据库,因此是最天真的JDBC形式。这类形式的产物对照合用于企业外部互联网,如若撑持国际互联网,还需增加对平安、穿过防火墙会见等的撑持。
形式1:右边的分支称为形式1,即一般由Sun公司供应的JDBC-ODBC桥接器。它供应了经过一种或多种ODBC驱动举行会见的JDBC接口,而ODBC驱动,在良多情形下也即数据库的客户端,必需加载到客户机。因此,它合用于下载和主动安装Java程序不主要、实行用处大概没有别的JDBC驱动可用的情形下。
形式2:右侧的分支成为形式2,相似于JDBC-ODBC桥接器,必要加载到客户机,倒是一个部分用Java完成的驱动接口。它将JDBC挪用转换为对数据库(Oracle、Sybase、Informix、DB2等)客户端接口的挪用。
分歧形式的JDBC接口的选择
以上论述的JDBC接口的形式分歧,让我们能够把JDBC接口依照完成的形式分为四类。有些同仁大概有如许的体味,选择分歧的JDBC接口会有分歧的会见速率,为什么会呈现如许的情形?这个成绩的谜底是,分歧的使用必要分歧形式的JDBC接口,因此我们在面临一个使用时,要稳重选择JDBC接口。
一般的DBMS都撑持微软提出的ODBC标准,因此形式1可看成您在计划和完成软件时的选择,它易于设置的特征可以让你把选择JDBC等懊恼的成绩临时抛在一边,让本人的Java程序可以尽早地一般事情起来。
一样平常说来,贸易DBMS的供应者常常会为本人的数据库供应一个JDBC接口,使用的是形式4。这类形式的上风在于和数据库自己分离对照严密,并且是纯Java的完成,在企业级的软件使用中,应当是首选。比方,关于Oracle数据库来讲,有Oracle、SilverStream、DataDirect等公司供应这类范例的驱动,其功能常常被评价为最高效的、最牢靠的驱动程序。但偶然也有对照贫苦的情形,比方微软就不会供应MSSQL的JDBC接口,这时候就必要到Sun的网站(http://industry.java.sun.com/products/jdbc/drivers)查找相干的形式4驱动,下面提到的DataDirect公司(http://www.datadirect-technologies.com/jdbc/jdbc.asp)就供应了撑持MSSQL的形式4驱动,只是你必要付出750$购置这个JDBC驱动。
一样是纯Java完成的形式3,与形式4比拟,上风在于对多种数据库的撑持,表现了其天真性。在年夜型的企业级的软件使用中,背景数据库常常不是一个,并且是由分歧的厂商撑持的。不外,形式3的JDBC驱动常常供应很多企业级的特性,比方SSL平安、撑持散布式事件处置和会合办理等,因此会对你特别的用处有很年夜的匡助。是不是选用,还在于你对扩大使用是不是有需求和对多DBMS的撑持。
谈到这儿,我对形式3和形式4作一个总结:二者都是纯Java完成的驱动,因此不必要数据库厂商供应附加的软件,就能够运转在任何尺度的Java平台,功能上对照高效、牢靠。
懂得上述3种JDBC的完成形式以后,形式2就更简单阐释了,你能够了解它为前三者利害均衡的让步产品:
1自创形式1使用客户机当地代码库,减速数据会见的实行,但却摒除ODBC尺度,而是撑持厂商本人指定的功能扩大
2自创形式3使用多层布局,下层用Java完成,利于跨平台使用和撑持多半据库,但上层却改成当地代码,减速实行速率
3自创形式4和数据库分离严密的长处,部分用Java完成,更是对数据库功能有很年夜的扩大
这类开放和高功能的特性失掉了业界的一定,因此被次要的数据库厂商激烈保举。只管它必要你下载当地代码库到客户机,但相对你会见数据库速率的进步,这些应当只是举手之劳了。上面对4种完成JDBC的形式选择,归结一下选择的按次(固然是指你有选择余地的时分,不存在的话向后推迟):
编号选择历程剖析选择按次
1实行性情况下,尽量选择易于设置的驱动,利于Java程序的开辟,前期可在对使用情况举行判别后,再对JDBC形式举行选择1>2>3>4
2小型企业级情况下,不必要对多半据库的撑持,因此形式2和3的有些长处其实不能表现出来,激烈保举你选择形式4的JDBC驱动4>2=3>1
3年夜型企业级情况下,必要对多半据库的撑持,形式2和3半斤八两,可是更多情形下是你会选择速率较快的形式22>3>4>1
关于分歧厂商供应的但使用不异形式的JDBC接口,实际上对照不出效力的上下,你只要经由过程必定的工具,比方Benchmark等,对它们举行对照才干更有益于你的选择。由于临时不存在第三方供应的数据对照了局,以是这些成绩必要你对上述内容有了透辟了解以后自行办理。
Java程序中SQL语句格局的优化
这个时分,你大概还在为找不到符合的JDBC驱动而束手无策,大概为本人在清晨3点下载的JDBC驱动经由过程了测试而欣喜若狂,可是其实不申明你对程序的优化事情已可有可无了。牢记,对全部软件体系的优化,包含每一个环节的优化,要不有大概你会半途而废。我在这儿反面人人会商Java程序的算法,而是复杂论述一下选择SQL语句格局的需要和怎样选择对本人有益的SQL语句格局。看上面两段程序片段:
CodeFragment1:
StringupdateString="UPDATECOFFEESSETSALES=75"+"WHERECOF_NAMELIKE |
|