转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
WebSphere数据库更新技巧二则         ★★★★

WebSphere数据库更新技巧二则

作者:闵涛 文章来源:闵涛的学习笔记 点击数:683 更新时间:2009/4/22 23:21:52
优化数据访问不是一件容易的事情——即使程序的性能很差,应用也不会抛出异常;即使程序包含了许多差劲的JDBC用法,编译器也不会发出警告;即使网络快要被庞大的通信量吞噬,也没有一种数据库工具能够方便地检测出拙劣的数据请求。然而,当你把JDBC应用连接到WebSphere应用服务器时,仍可以采取一些措施让应用更加高效。例如,下面两则技巧能够有效地提高更新数据库数据的性能。

  一、使用updateXXX方法

  虽然用程序代码更新数据库的办法不一定适用于所有的场合,但大家应该已经试过用程序执行更新和删除操作了。ResultSet对象的updateXXX方法让我们不必构造复杂的SQL命令就可以执行数据更新操作,我们只要提供待更新的列和数据,然后在把游标移出结果集的当前行之前,调用updateRow方法更新数据库。在下面的例子中,getInt方法提取出ResultSet对象Age列的值:

  int n = rs.getInt("Age");
  // n包含rs结果集中Age列的值
  . . .
  rs.updateInt("Age", 25);
  rs.updateRow();

  updateInt方法将Age列的值更新为25,updateRow方法更新数据库中包含被修改数据的行。

  用程序代码更新数据库不仅改善了应用的可维护性,而且往往还提高了性能。这是因为,数据库服务器已经在处理SELECT语句的过程中找到了待修改行的位置信息,不必再次执行代价昂贵的操作来寻找要修改的行。如果你确实需要该行的位置,数据库服务器通常能够提供可用行的内部指针,例如ROWID之类。

  二、使用getBestRowIndentifier

  利用getBestRowIndentifier(),我们可以确定在WHERE子句中最好用哪些列的集合。伪列通常是速度最快的数据访问标识,但要确定这类列只能通过getBestRowIndentifier()。

  有些应用程序不能利用定位式数据更新和删除方式的优势,这时,可以通过调用getPrimaryKeys()或getIndexInfo()来找出属于唯一性索引的列,再用所有可搜索的列构造WHERE子句。这个办法一般都有效,只是可能使最后得到的查询变得相当复杂。考虑下面这个例子:

  ResultSet WSrs = WSs.executeQuery
("SELECT user_name, ssn, address, city,
state, zip
FROM emp");
  // 提取数据
  ...
  WSs.executeQuery ("UPDATE EMP SET ADDRESS = ?
  WHERE user_name = ? and ssn = ?
  and address = ? and city = ? and state = ?
  and zip = ?");
  // 相当复杂的查询

  应用程序应当调用getBestRowIndentifier()来找出唯一地标识数据库记录的最优列集合(也许是一个伪列)。许多数据库管理系统支持一些特殊的列,这些列不是用户在定义表结构的时候显式定义的,而是每一个表都有的隐含列(例如,ROWID,TID)。这些列称为伪列,由于它们的值通常是直接指向记录精确位置的指针,因此通过伪列访问数据通常是最快的访问方式。另外,由于伪列不是用户定义表结构的时候显式定义的,所以调用getColumns方法返回的结果中不会包含伪列。要确定是否有伪列可用,应当调用getBestRowIndentifier()。

  如果数据源不包含特殊的伪列,getBestRowIndentifier()的结果集包含了指定表的最优唯一索引的列集合(如果存在唯一性索引的话)。也就是说,应用程序不必再调用getIndexInfo就可以得到最小的唯一性索引。
 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台