本文主要描述的是如何利用连接与语句池的特性来大幅度的提高 Oracle JDBC 程序的相关性能。我们一般使用的,诸如连接池与语句池等池技术就可以显著提高数据库密集型应用程序的性能,因为这样可以实现对象重用,而无需花费时间和资源重新创建对象。
如果应用程序与数据库频繁交互并且经常使用相同的参数重新建立连接,那么重用表示应用程序使用的物理数据库连接的数据库连接对象可显著提高性能。反之,如果应用程序与其基础数据库很少连接,您不会因使用连接池获益。实际上,如果池的设置(例如,允许的最大或最小连接数限制)针对特定应用程序进行了优化,许多数据库密集型应用程序都可以因使用连接池获益。
与连接池一样,语句池也是用于提高应用程序性能的技术。通过在应用程序运行期间多次执行语句池,可以进一步提高性能。然而,我们应该意识到语句池并不是解决性能问题的灵丹妙药。如果对每条语句进行缓存而不辨别其在程序中执行的次数,则不可能获得任何性能改进。
实际上,由于将语句放入缓存并保存在缓存中将产生开销,因此对在程序执行期间仅执行一次的语句进行缓存将降低性能。
本文将向您介绍如何利用连接池和语句池提升通过 Oracle JDBC 瘦驱动程序与 Oracle 数据库交互的数据密集型 Java 数据库连接 (JDBC) 程序的性能。本文将特别介绍 Oracle Universal Connection Pool (UCP) for JDBC,它提供了适用于缓存 JDBC 连接的全功能连接池实现。
最后,本文将讨论如何通过使用语句池获益,需要利用特定于 Oracle 的 JDBC 驱动程序的特性以及新的 JDBC 4.0 方法,这些方法已添加到 Statement 接口并且在支持 Java 开发工具包 (JDK) 1.6 及更高版本的 Oracle JDBC 驱动程序中可用。
设置工作环境
要使用本文中的示例并访问 Oracle 数据库,您的开发计算机上需要安装以下软件组件(请参见“下载”portlet 以获得链接):
JDK 1.6
支持 JDK 1.6 的 Oracle JDBC 瘦驱动程序
Oracle 通用连接池库
Oracle JDBC 瘦驱动程序是一个 Type IV JDBC 驱动程序,这意味着它独立于平台,并且在与 Oracle 数据库交互的客户端上不需要任何额外的 Oracle 软件。因此,您可以从 JDBC 驱动程序下载页面下载包含相应瘦驱动程序版本类别的 JAR 文件,然后将该驱动程序安装在您的计算机上,无需安装/升级任何其他的 Oracle 软件。要安装该驱动程序,您只需将其 JAR 文件复制到本地文件系统,然后将这些 JAR 的路径包括在 CLASSPATH 环境变量中。例如,您可能包括以下路径:
- ORACLE_HOME/jdbc/lib/ojdbc6.jar ORACLE_HOME/jlib/orai18n.jar
如果您的计算机上已经安装了 Oracle 数据库,则瘦驱动程序也已经随 Oracle 数据库安装到您的计算机上。但是,由于瘦驱动程序独立于任何其他 Oracle 软件,因此您可以通过使用相应的 JAR 文件(可以在 JDBC 驱动程序下载页面找到)轻松升级到该驱动程序的最新版本。
UCP 是从 11.1.0.7 版开始引入 Oracle 数据库 11g 的一个新特性。该特性从 Oracle 应用服务器 11g 第 1 版开始就包含在 Oracle 应用服务器中。如果您使用的是未装载 UCP 的 JAR 文件(名为 ucp.jar)的旧版本软件,或者您希望升级到最新的 UCP 版本,可以从 Oracle 数据库 UCP 下载页面获取 ucp.jar。该程序包包含 UCP 的类,以便于将其包括在类路径中来启用该特性。所包括的路径可能如下所示:
- ORACLE_HOME/ucp/lib/ucp.jar
上述的相关内容就是对高性能 Oracle JDBC的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】
- Oracle进程中出现带锁状况的解决
- Oracle内存结构里Process Memory实际操作步骤
- Oracle同时访问N个SQL Server的实操
- Oracle细粒度如何进行访问
- Oracle数据库的异构服务原理描述