本文主要描述的是如何利用連接與語句池的特性來大幅度的提高 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的描述,希望會給你帶來一些幫助在此方面。