统运行的
web服务器、应用服务器、数据库服务器软硬件环境,系统实现采用的J2EE框架及各种构件技术,系统设计的完善程度、源代码的编写方
收稿日期:20061101作者简介:唐文忠(1968-),男,河北涿鹿人,研究员,3710167@qq.com..
第10期
唐文忠等:J2EE信息系统数据访问层性能监测与优化设计
1205
式,数据库访问操作等.计算机硬件的发展速度遵循摩尔定律可谓一日千里,目前完全有条件充分满足J2EE信息系统性能需求.由于J2EE标准的开放性,允许中间件供应商开发各种应用服务器、通用构件及应用
程序框架完成一些繁琐的任务,如持久化、安全、事务等,使开发者从一些烦杂的非业务功能中解脱出来.中间件厂商专业人做专业的事,在中间件的开发过程中也都尽可能地兼顾开发效率和性能解决
方案.本文主要讨论在恰当地选择了上述软硬环境的前提下J2EE信息系统的性能特点.现实情况反映出,在此前提下系统的响应速度很大程度上取决于对数据库的访问速度,数据访问是影响系统性能的主要因素之一.信息系统的生命周期可以分成设计、开发和成品3个阶段.在设计阶段进行数据库性能优化的成本最低,收益最大.根据统计,对
网络、硬件、操作系统、数据库参数进行优化所获得的性能提升,全部加起来只占数据库系统性能提升的40%左右,其余的60系统性能提升来自对应用程序%[1]的优化.应用程序的优化通常可分为2个方面:源代码和SQL语句.由于涉及到对程序逻辑的改变,若在成品阶段对源代码的优化在时间成本和风险上代价很高,而对信息系统性能的提升收效有限.SQL语句独立于程序设计逻辑,对SQL语句进行优化则易于实现.因此,本文着重在系统的设计和开发阶段,从数据访问层设计及SQL优化2方面优化数据访问性能,最终达到提高系统整体性能的目的.
具,处理开发阶段的数据访问性能监视和调测的问题.
3
J2EE系统数据访问性能优化
本文主要以一个现实的J2EE信息
管理系统项目为背景,针对J2EE信息系统性能的特点做如下数据访问层设计及性能优化的应用研究
工作:1)数据访问层框架搭建.数据库连接池、持久层解决方案是提高数据访问效率的重要手段.目前已经有很多成熟的连接池产品及兼顾了开发[2]效率和性能问题的持久层解决方案,因此本文的数据访问层框架将在这些成熟方案的基础上,从对工程项目具体实施过程中提高开发效率和数据访问效率的角度进行设计和搭建.主要是实现以下3方面具体功能:①从提高开发效率的角度为项目提供安全、易用、统一的数据库操作方法;②为信息系统中
常用功能提供大数据量处理的专门方法;③支持SQL与源代码彻底分离,易于进行对应用中的SQL调优.2)利用AOP技术实现一个数据访问监测工具.从AOP的角度看,本文第2节提到的J2EE信息系统性能监视调测存在的问题都是因为关注点的横切引起的,而AOP立足于关注点的分离,它能够支持组件(类)的分离,提供了一种从组件中分离出aspect的方式
[3]
,这种方式能够很好地解
决该问题.该工具实现以下几方面功能:①监视J2EE信息系统Web请求和响应操作,且被监视系统不需要做任何源代码修改以提供监视接口;②监视并统计应用程序对数据库访问操作情况.3)SQL语句性能调优.SQL语句是对数据库进行操作的唯一途径,SQL语句消耗了70~%90的数据库资源;相同功能不同写法的SQL语%句在性能上的差异非常大
[4]
2开发阶段性能调测存在的问题
在开发阶段对信息系统数据访问性能的监测及调优,通常需要记录数据访问操作的执行情况.传统数据访问设计方法是:为数据访问操作代码提供有关方法,记录使用情况、计时以及错误情况.但是,这种方式要求在许多地方分散重复的代码,而且要测量哪些代码也需要经过许多实验和错误才能确定.当系统发生变化涉及到代码修改时,这种方式下的性能监视代码也要随之修改,这是很难维护的.一些功能强大的第三方测试工具如l
oadRunner能够全面的解决性能监测问题,但是这些工具通常使用复杂且价格昂贵.而Profiler这种开源的性能监测工具本身需要一定的系统开销,会对监测结果造成不利的影响.因此,本文将从简单实用的角度出发,利用AOP技术设计实现一个小工
.因此,SQL语句的调
优对系统的数据访问性能优化可以起到相当重要的作用.总结一些常用的SQL性能调优知识,根据这些常用知识、性能瓶颈挖掘工具得出的数据库访问情况及项目具体情况进行SQL语句性能调优.