使用pureQuery优化现有的JDBC应用程序

开始之前

pureQuery 简介

IBM Data Studio 产品组合中包括 pureQuery,它是一个高性能数据访问平台 ,旨在简化 Java 数据访问的开发、管理、安全保障和优化。它由开发工具(在 Data Studio Developer 中)、一个简单直观的 API 和一个运行时(在 Data Studio purequery Runtime 中)组成。

在优化 DB2 数据的 Java 数据访问和保障访问的安全方面,pureQuery 的主 要优点是开发和部署使用静态 SQL 的应用程序非常容易。当使用静态 SQL 时, 执行 SQL 语句的准备步骤是在应用程序执行之前就进行的,因此可在运行时取得 更好的性能。此外,静态 SQL 总是可以预先知道,因此不会受到恶意的或意外的 SQL 注入的影响,而这正是动态 SQL 的安全缺陷。

以前,为了使用静态 SQL,需要用 pureQuery 带注释的方法样式来编写应用 程序。在 1.2 版的 Data Studio Developer 和 Data Studio pureQuery Runtime 中,无论现有的 JDBC 应用程序是直接实现持久性,还是使用流行的框 架(比如 Hibernate 和 JPA 来实现持久性),都可以使用静态 SQL,而不必重 新编写代码。这个特性有时候被称作客户机优化(client optimization),因为 启用静态 SQL 的过程是在 JDBC 客户机这一级发生的。我们将此特性称作 pureQuery for JDBC applications。

启用应用程序的 pureQuery for JDBC applications 特性的常规过程是一个 迭代的过程,由以下几个阶段组成:

计划。计划阶段的目的是确定应用程序是否适合使用 pureQuery。虽然从概念 上讲可以为任何访问任意 DB2 数据服务器中的数据的 Java 应用程序启用该特性 ,但是应用程序必须满足一定的标准,例如先决条件(比如,应用程序在 JRE 1.5 或以上中运行)、安全方面(比如,DBA 或数据管理员同意使用基于数据库 包的安全性,而不是基于表/视图的安全性)等等。

捕捉。PureQuery for JDBC applications 静态地处理 SQL 语句时,依赖于 关于应用程序 SQL 语句及其相关元数据的信息。捕捉阶段收集必要的信息,并将 其存储在一个元数据文件中。

配置。为了静态地执行 SQL,首先必须将它绑定到一个数据库包。在此之前, 可以配置已捕捉的 SQL 文件,以指定一些设置,例如每个包中存放多少条 SQL 语句。

绑定。定义包的特征之后,需要将捕捉的 SQL 和相关的元数据绑定到一个或 多个数据库(也可以将它存储到 DBRM 中,以后再部署它)。

执行和验证。成功地完成上述阶段后,pureQuery for JDBC applications 就 配置好了,这就可以静态地执行 SQL 语句了。在验证过程中,质量保证专家验证 应用程序是否按预期执行,并返回预期的结果。

注意:在通常的使用场景中,启用(enablement)过程是一个迭代的过程。

关于本教程

在本教程中,学习如何使用 Data Studio Developer,让一个简单的定制开发 的 JDBC 应用程序可以使用 pureQuery for JDBC applications 特性。不过,您 也可以使用自己选择的访问任意平台上的 DB2 数据的应用程序来学习本教程。客 户机优化不需要访问源代码,但是本教程中的步骤假设您有那样的访问权。

目标

本教程的目标是介绍使现有的 JDBC 应用程序支持 pureQuery 的步骤。为了 使本教程简单一些,我们提供了一个小型的应用程序,这个应用程序直接使用 JDBC 实现持久性,它满足启用 pureQuery 所需的所有要求,并且很容易验证。

在本教程中,您将学习如何:

创建一个示例数据库,并将示例 JDBC 应用程序导入到 Data Studio Developer 1.2 中。

使用一个代码路径运行应用程序,并捕捉它的 SQL。

在 Java 源代码中查看示例应用程序的 SQL 和它与 Java 源代码的关系(可 选)。

配置捕捉到的 SQL,并将其绑定到一个数据库包。

以静态 SQL 执行模式运行示例应用程序,并验证它是否具有正确的行为。

使用另一条代码路径运行应用程序,以捕捉剩下的 SQL;然后,使用静态 SQL 执行重新绑定并重新运行应用程序。

时间: 2024-10-07 11:48:15

使用pureQuery优化现有的JDBC应用程序的相关文章

简单的JDBC应用程序for Java DB

今天下载了jdk1.6.0,以后要慢慢来学习1.6中的新特性和其中的一些经典实例.先看看关于java DB的这个最简例子:Simple JDBC Application (源码SimpleApp.java.文档及derby.jar,derbynet.jar,derbyclient.ar文件请从jdk1.6.0中找) 这个例子是一个最小限度的JDBC 应用程序. 关于这个程序: 以内嵌式模式(缺省的)或作为一个服务器环境中的客户端运行,这依赖于传递给程序的参数 如果运行在内嵌式模式,则启动Derb

使用GProf来优化你的C/C++程序

GProf使用了一种异常简单但是非常有效的方法来优化C++/C++程序,而且能很容易的识别出值得优化的代码.一个简单的案例分析将会显示,GProf如何通过识别并优化两个关键的数据结构,将实际应用中的程序从3分钟的运行时优化到5秒的. 这个程序最早可以追溯到1982年关于编译器构建的特别讨论大会(the SIGPLAN Symposium on Compiler Construction).现在这个程序成了各种UNIX平台上的一个标准工具. Profiling in a nutshell 程序概要

java JDBC 提高程序可移植性

程序 很多java初学者在开始接触JDBC编程的时候,在网上和大部分的教材上都是这样介绍JDBC一般的程序://可以运行的完整程序import java.sql.*; public class DatabaseDemo{ public static void main(String args[]) { Connection con; Statement stmt; ResultSet rs; //load the driver class try {//直接在程序里面写字符串 com.micro

调整优化您的LAMP应用程序的5种简单方法

简介 Wikipedia.Facebook 和 Yahoo! 等主要 web 属性使用 LAMP 架构来为每天数百万的请求提供服务,而 Wordpress.Joomla.Drupal 和 SugarCRM 等 web 应用程序软件使用其架构来让组织轻松部署基于 web 的应用程序. 该架构的优势在于其简单性.而 .NET 这样的堆栈和 Java 技术可能使用大量硬件.昂贵的软件栈和复杂的性能调优,LAMP 堆栈可以运行于商品硬件之上,使用开源软件栈.由于软件栈是一个松散的组件集,而非一个整体堆栈

使用优化器来提升Python程序的执行效率的教程_python

如果不首先想想这句Knuth的名言,就开始进行优化工作是不明智的.可是,你很快写出来加入一些特性的代码,可能会很丑陋,你需要注意了.这篇文章就是为这时候准备的. 那么接下来就是一些很有用的工具和模式来快速优化Python.它的主要目的很简单:尽快发现瓶颈,修复它们并且确认你修复了它们.写一个测试 在你开始优化前,写一个高级测试来证明原来代码很慢.你可能需要采用一些最小值数据集来复现它足够慢.通常一两个显示运行时秒的程序就足够处理一些改进的地方了. 有一些基础测试来保证你的优化没有改变原有代码的行

调整优化您的LAMP应用程序的5种简单方法_php技巧

简介 Wikipedia.Facebook 和 Yahoo! 等主要 web 属性使用 LAMP 架构来为每天数百万的请求提供服务,而 Wordpress.Joomla.Drupal 和 SugarCRM 等 web 应用程序软件使用其架构来让组织轻松部署基于 web 的应用程序. 该架构的优势在于其简单性.而 .NET 这样的堆栈和 Java 技术可能使用大量硬件.昂贵的软件栈和复杂的性能调优,LAMP 堆栈可以运行于商品硬件之上,使用开源软件栈.由于软件栈是一个松散的组件集,而非一个整体堆栈

新手学习网站优化系列教程三:程序的选择

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 前面讲了<新手学习网站优化系列教程一:域名的选择>和<新手学习网站优化系列教程二:空间的选择>,今天来讲解第三课,程序的选择.据笔者所说,很多个人站长的程序源码都是从网络上下载下来的,因为大部分的个人站长都没有太多的时间专注于自己写源码程序,这花费大量的时间不说,也很难做得到.所以,与其花这么多时间在写程序上面,不如直

《Java程序性能优化》学习笔记 并行程序优化

第四章 并行程序优化4.1 并行程序设计模式4.2 JDK多任务执行框架4.3 JDK并发数据结构4.4 并发控制方法4.5 锁的性能和优化4.6 无锁的并行计算 1.非阻塞同步避免了基于锁的同步的缺陷,无锁算法没有锁竞争带来的系统开销,也没有线程间频繁调度带来的开销. CAS算法:包含3个参数CAS(v,e,n).V表示要更新的变量,E表示预期值,N表示新值 2.JDK的java.util.concurrent.atomic包下,有一组使用无锁算法实现的原子操作类,如AtomicInteger

SEO优化前期不要忘记网站程序的选择

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 现在大部分的网站论坛都是用网络上的程序架设的,那么选择一套适合SEO优化的程序至关重要,后期的SEO优化是建立在这套程序选择上的,如果程序没有选择好,带来的后果不堪设想.相信大部分做过SEO的站长朋友都深有体会,今天我将给SEO新手朋友总结一下关于程序选择需要注意的几点. 网站程序结构: 读过百度官方的"建立符合搜索抓取习惯的网站&