提高 Oracle JDBC的性能的办法
创始人
2024-06-28 02:40:14
0次

本文主要描述的是如何利用连接与语句池的特性来大幅度的提高 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 环境变量中。例如,您可能包括以下路径:

 

 

  1. 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 的类,以便于将其包括在类路径中来启用该特性。所包括的路径可能如下所示:

 

  1. ORACLE_HOME/ucp/lib/ucp.jar 

上述的相关内容就是对高性能 Oracle JDBC的描述,希望会给你带来一些帮助在此方面。
 

 【编辑推荐】

  1. Oracle进程中出现带锁状况的解决
  2. Oracle内存结构里Process Memory实际操作步骤
  3. Oracle同时访问N个SQL Server的实操
  4. Oracle细粒度如何进行访问
  5. Oracle数据库的异构服务原理描述

 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...