DB2 9 for z/OS 提供了许多新的性能特性。我在 DB2 9 和 pureQuery 中发现的最令人兴奋的特性组合之一是,能够把动态 JDBC SQL 应用程序转换为静态事务。这个组合使用新的 IBM Data Server Driver for JDBC,可以消除每个 JDBC SQL 事务在动态 JDBC 安全授权、对象检验和访问路径创建方面的开销。对于每天执行数百万个动态 JDBC 事务的 DB2 系统,把动态事务转换为静态事务会节省大量 CPU 时间和操作开销。
pureQuery 进一步发展了 DB2 的面向对象性质。pureQuery 支持使用传统的 JDBC 应用程序 SQL 编程、JDBC 4.0 SQL 方法调用以及 JPA、Hibernate 和 iBatis 中的命名查询风格。通过使用 pureQuery,开发人员可以按照任何编程风格编写应用程序,并轻松地把动态应用程序转换为静态、可靠、健壮的 DB2 应用程序。
可以通过新的基于 Eclipse 的编程工具 IBM Data Studio v1.1 使用 pureQuery 中的改进,可以从 IBM 网站免费下载这个工具。可以通过一个简单的菜单项在 Java Project 透视图中访问这些特性。通过把 pureQuery 运行时(pdqmgmt.jar)和 JDBC 驱动程序打包并部署在任何 Java 应用服务器(WebSphere、Tomcat 等)上,就可以使用这些特性。
DB2 9 还有另一个令人印象深刻的特性:分布式系统事务的“可信上下文”。这个特性可以在确保安全性的同时改进性能。可以通过这个特性创建一个可信网络,这个网络与数据库对象相结合,并把应用程序计划或包与一个安全数据库角色关联起来。定义可信网络平台,在创建数据库对象时使用 ROLE AS OBJECT OWNER 关键字,并与可信数据库角色绑定,这样 DB2 系统就可以方便地执行安全检查并重用动态数据库事务线程和访问计划。通过缓存和简化这些远程分布式 WebSphere 服务器事务,只要服务器还在向 DB2 for z/OS 系统提交事务,DB2 就会保留安全令牌。这个特性通过使用令牌改进了安全性,消除了对服务器发出的每个事务进行二级安全检查的开销。正如我在讨论 pureQuery 时提到的,对于处理大量分布式动态事务负载的系统,这个功能会显著改进性能。
最后,DB2 9 支持列级数据加密。我们都需要认真了解这个特性。我最近遇到一位英国人,由于与他有业务往来的组织(包括英国政府)出现信息漏洞,他不得不四次更换他的信用卡。如果这些组织使用了加密技术,这些漏洞并不会造成问题。加密的开销并不算大,而且加密可以大大提高安全性,让您的 CEO 可以更放心。