电信设备制造商 WebSphere中间件

优化WebSphere应用性能技巧: 数据库访问

二、数据库访问

  朋友小A对Java的了解极为有限,但他却成功地改进了许多WebSphere应用的性能。他是怎么做到的呢?原来,小A是一个数据库专家,他通过优化数据库访问有效地改进了整个应用的性能,但对于Java,他只是略微了解一些有关JDBC的知识。在优化数据库访问时,小A做的第一件事情总是检查数据库的设计,有时他会建议重新构造数据库的结构(必须指出的是,为了提高性能而重新构造数据库结构有时可能使数据库反规格化(De-Normalization),从而带来维护方面的问题)。


  性能技巧之二:规格化(Normalization)数据库结构

  小A做的第二件事情是执行数据库分析,根据分析结果提出增加某个索引、减少某个索引的建议。完成这一步骤后,小A通常可以让应用有令人满意的性能表现,根本不必去查看应用的Java代码。
参与17

17 同行回答

suilg suilg ddd dd
:) 学习了显示全部
:) 学习了 收起
2008-09-24
浏览333
dkm dkm 软件架构设计师 广州八斗软件科技有限公司
:o 收起
互联网服务 · 2008-09-23
浏览339
apex20070717 apex20070717 软件工程师 itet
asdfasdfasdfasdfasdfasdfasdf显示全部
asdfasdfasdfasdfasdfasdfasdf 收起
2008-09-22
浏览327
suilg suilg ddd dd
dddddddddddddddddddddd显示全部
dddddddddddddddddddddd 收起
2008-09-19
浏览347
qyj211 qyj211 ss ss
实用实用,继续继续继续继续显示全部
实用实用,继续继续继续继续 收起
2008-08-17
浏览342
AXXX AXXX AXXX AXXX
实用,DDDDDDDDDDD显示全部
实用,DDDDDDDDDDD 收起
2008-07-08
浏览341
wanphere wanphere 产品经理 --
性能技巧之三:针对常用的SQL操作建立索引,删除多余的索引   有时,为了进一步优化应用的性能,小A会检查Java(也许应该说是SQL)代码,经常找到Java程序没有合理运用PreparedStatement和连接缓冲池的情形。只要把Statement类的动态SQL替换成PreparedStatement类的静态SQL,从连接池...显示全部
性能技巧之三:针对常用的SQL操作建立索引,删除多余的索引

  有时,为了进一步优化应用的性能,小A会检查Java(也许应该说是SQL)代码,经常找到Java程序没有合理运用PreparedStatement和连接缓冲池的情形。只要把Statement类的动态SQL替换成PreparedStatement类的静态SQL,从连接池提取SQL连接(而不是直接创建连接),应用的性能将得到显著的改善。注意DB2 UDB(包括其他一些数据库)的PreparedStatement是可调整和配置的。

  性能技巧之四:合理运用PreparedStatement和连接池

  进一步分析应用的工作流程之后,小A有时会建议批量执行某些SQL命令,这样就只需一个对数据库服务器的请求就可以运行大量的SQL命令。

  性能技巧之五:考虑批量执行SQL命令

  既然如此,小A有时还会指出,如果应用中有些SQL命令可以组合成单个事务逻辑,那么应该可以用一个存储过程来替代。DB2 UDB的存储过程语言(SPL,Stored Procedure Language)非常强大,如果把数据库操作逻辑从Web应用转移到数据库,一般总是对性能有益。不过需要注意的是,虽然批量执行SQL命令或使用存储过程会提高性能,但就象重新构造数据库结构一样,有时会带来维护方面的困难。

  性能技巧之六:考虑使用数据库存储过程

  检查JDBC代码的时候,小A总是留意对象有没有及时正确释放。这一点其实很重要。

  性能技巧之七:及时关闭不用的Statement、ResultSet、Connection等对象(但不是在finalize方法内) 收起
电信设备制造商 · 2008-03-14
浏览369

提问者

wanphere
产品经理 --
评论20

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2008-03-14
  • 关注会员:0 人
  • 问题浏览:9680
  • 最近回答:2010-07-24
  • X社区推广