亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

如何測定JDBC的性能

2019-11-18 11:02:48
字體:
來源:轉載
供稿:網友

  java數據庫連接(JDBC)被廣泛用在Java應用程序中。在本篇文章中,我們將討論如何測定JDBC的性能,如何判定JDBC子系統中的哪一部分需要進行優化。

  核心的java.sql界面

  我們的目的是提高應用程序的性能。一般情況下,我們需要對應用程序進行分析,找出其中的瓶頸。當然了,要對分布式應用程序進行有效的分析是比較困難的,I/O是分析的一個重點,這是由分布式應用程序的特點決定的,分布式應用程序中的線程需要花費大量的時間等待I/O操作。目前還不清楚線程因等待讀、寫操作而阻塞是瓶頸的一部分呢還是一個無關緊要的小問題。在進行分析時,有一個獨立的通信系統測試標準是重要的。那么在測試JDBC子系統的性能時,我們應當測試哪些指標呢?

  在java.sql軟件包中,有三個接口組成了JDBC的核心:Connection、Statement和ResultSet。與數據庫的正常交互包括下面的幾部分:

   ·從數據庫驅動程序中獲得一個Connection對象。

   ·從Connection對象中獲取能夠執行指定的SQL語句的Statement對象

   ·假如SQL語句需要從數據庫中讀取數據,則使用Statement對象獲取一個提供對數據庫中的數據進行訪問的ResultSet對象。

  下面的例子通過訪問指定數據庫表的每行記錄的所有域、將每行的數據存儲到String []、并將所有的行放到一個向量中,演示了標準的數據庫交互過程。

public static Vector getATable(String tablename, Connection Connection)
throws SQLException
{
String sqlQuery = "SELECT * FROM " + tablename;
Statement statement = Connection.createStatement();
ResultSet resultSet = statement.executeQuery(sqlQuery);
int numColumns = resultSet.getMetaData().getColumnCount();
String[] aRow;
Vector allRows = new Vector();
while(resultSet.next())
{
aRow = new String[numColumns];
for (int i = 0; i < numColumns; i++)
file://ResultSet的訪問是從1開始的,數組是從0開始的。
aRow[i] = resultSet.getString(i+1);
allRows.addElement(aRow);
}
return allRows;
}

  在java.sql或其他的SDK中沒有Connection、Statement和ResultSet這三個對象的具體實現,這些對象以及其他的JDBC接口都是由數據庫驅動程序的廠商開發的,并被作為數據庫驅動程序的一部分包括在驅動程序軟件包中。假如要打印出Connection對象或使用的其他對象的類名,可能會看到類似XXXConnection、XXXStatement、XXXConnectionImpl、XXXStatementImpl等字符串,其中的XXX就是正在使用的數據庫的名字,例如Oracle。

  假如我們要測試例子中getATable()方法的JDBC的性能,可以簡單地在該方法的開始處和末尾處添加System.currentTimeMillis(),二者之間的時間差就是getATable()方法執行所使用的時間。只要數據庫的交互過程與其他過程沒有攪和在一起,就可以使用這種方法測試一個方法的JDBC性能。但通常情況下,Java應用程序的的數據庫交互過程分布在許多類的許多方法中,而且很難將數據庫交互過程單獨分離出來。那么在這種情況下我們應該如何測試數據庫交互過程的性能呢?

  一個理想的方法是在所有的JDBC類中都內置測量性能的能力,然后可以在需要對其性能進行監測時簡單地打開監測功能就可以了。正常情況下,JDBC類沒有提供這種能力,但我們可以使用具備這種功能的類來替換它們,我們替換類的目標是提供與PRoxy非常相似的對象。

  使用一個接口的專用封裝對象封裝該接口的對象是一種有多種用途的成熟技術,collection類同步的封裝對象就是最聞名的一個例子,但還有其他許多用途。SDK中甚至有一個專門在運行時才生成封裝對象的類:java.lang.reflect.Proxy類。封裝對象也被稱作代理對象,假如在本篇文章中使用代理對象這個術語,會使對封裝JDBC對象的解釋更復雜,因此,在本篇文章中仍然會堅持使用封裝類。

  要在上述功能的基礎上添加測試數據庫交互過程的功能,還需要對應用程序的其他部分作一些改變,很明顯的是,這樣作需要一定的代價。

  幸運的是,當一個框架象JDBC那樣幾乎完全采用接口來定義時,要用另外的實現替換其中的作一個類就相當簡單了。我們可以使用一個封裝類替換一個接口的任何一種實現,該封裝類封裝原有的類,并轉發所有對原來類的方法的調用。在本篇文章中,我們可以使用一個封裝類替換掉JDBC類,將我們監測JDBC性能的功能放置在封裝類中,然后使監測功能隨整個應用程序的執行而執行。


  封裝Connection類

  我們將首先討論Connection類的封裝。下面的ConnectionWrapper類實現了Connection類,該類有一個Connection類的實例變量和使用構建器的參數初始化實例變量的構建器,大多數的Connection類的方法被簡單地定義為將調用托付給實例變量:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女免费观看| 国色天香2019中文字幕在线观看| 亚洲成人三级在线| 97热在线精品视频在线观看| 亚洲欧美日韩久久久久久| 国产成人激情小视频| 成人黄色免费在线观看| xvideos亚洲人网站| 欧美激情在线观看| 另类视频在线观看| 97成人精品区在线播放| 日韩精品中文字幕有码专区| 成人黄色免费在线观看| 成人性生交大片免费看视频直播| 狠狠躁18三区二区一区| 亚洲xxxx18| 亚州国产精品久久久| 欧美日本亚洲视频| 国产精品丝袜久久久久久高清| 精品中文字幕在线| 国产成人avxxxxx在线看| 午夜精品美女自拍福到在线| 91国产精品电影| 美日韩精品免费观看视频| 久久久国产一区二区| 91sao在线观看国产| 欧美性猛交99久久久久99按摩| 亚洲精品国产综合区久久久久久久| 欧美极品第一页| 国产丝袜一区视频在线观看| 久久免费成人精品视频| 国产一区二区日韩精品欧美精品| 91精品视频在线免费观看| 亚洲欧洲成视频免费观看| 亚洲国产精品热久久| 国产欧美精品xxxx另类| 精品久久久久久| 日韩激情第一页| 色先锋资源久久综合5566| 精品久久久91| 91精品国产91久久久久久最新| 国产美女搞久久| 91久久精品国产| 久久久中文字幕| 欧美日韩亚洲一区二区| 成人精品在线观看| 久久成年人免费电影| 97视频免费观看| 久久久免费观看视频| 欧美怡红院视频一区二区三区| 欧美成人午夜影院| 国产91|九色| 韩国一区二区电影| 日韩av中文字幕在线播放| 亚洲国产成人爱av在线播放| 国产成人一区三区| 国产在线98福利播放视频| 亚洲国语精品自产拍在线观看| 色综合久久中文字幕综合网小说| 欧美日韩电影在线观看| 亚洲电影第1页| 国产日韩欧美在线观看| 日韩有码视频在线| 国产成人拍精品视频午夜网站| 国产精品久久中文| 欧美大片免费看| 日本久久久久久久久| 亚洲第一二三四五区| 国产成人精品国内自产拍免费看| 精品无人国产偷自产在线| 免费97视频在线精品国自产拍| 91性高湖久久久久久久久_久久99| 欧美激情一区二区三区在线视频观看| 懂色av一区二区三区| 亚洲激情小视频| 亚洲码在线观看| 亚洲美女精品成人在线视频| 欧美高跟鞋交xxxxxhd| 国产视频精品免费播放| 国产精品网红直播| 国产精品丝袜白浆摸在线| 亚洲风情亚aⅴ在线发布| 欧美成人精品激情在线观看| 狠狠做深爱婷婷久久综合一区| 欧美限制级电影在线观看| 69国产精品成人在线播放| 欧美日韩精品在线观看| 亚洲最大的网站| 日韩欧美国产骚| 日韩女优人人人人射在线视频| 北条麻妃一区二区三区中文字幕| 欧美性猛交xxxx乱大交蜜桃| 欧美激情视频在线免费观看 欧美视频免费一| 欧美一区二区三区四区在线| 久久精品91久久香蕉加勒比| 亚洲精品综合久久中文字幕| 成人伊人精品色xxxx视频| 国产精品国产亚洲伊人久久| 日韩精品日韩在线观看| 国产午夜精品全部视频在线播放| 欧美国产日韩一区二区三区| 97热精品视频官网| 欧美孕妇毛茸茸xxxx| 日本午夜精品理论片a级appf发布| 久久精品2019中文字幕| 日韩欧美精品中文字幕| 国产成人精品优优av| 欧美中文字幕精品| 欧美成人午夜视频| 亚洲视频在线观看视频| 色综合男人天堂| 欧美日韩亚洲精品一区二区三区| 成人国产精品久久久久久亚洲| 国产精品国产福利国产秒拍| 亚洲美女动态图120秒| 97视频免费在线看| 亚洲欧美在线磁力| 欧洲中文字幕国产精品| 欧美精品激情视频| 国模精品系列视频| 伊人久久大香线蕉av一区二区| 97在线精品国自产拍中文| 91系列在线观看| 欧美亚洲视频在线观看| 欧美人与性动交a欧美精品| 亚洲欧美另类国产| 欧美综合一区第一页| 日韩欧美主播在线| 懂色av一区二区三区| 欧美国产精品日韩| 日韩高清中文字幕| 精品毛片三在线观看| 国产精品爱啪在线线免费观看| 久久久久久国产精品美女| 欧美日韩成人在线观看| 亚洲精品不卡在线| 538国产精品视频一区二区| 欧美在线免费视频| 亚洲黄色免费三级| 91夜夜揉人人捏人人添红杏| 91极品女神在线| 91精品国产沙发| 国产日韩综合一区二区性色av| 中文字幕日本欧美| 国产亚洲一区二区精品| 一本一道久久a久久精品逆3p| 日韩亚洲成人av在线| 国产精品视频公开费视频| 日韩电视剧免费观看网站| 国产精品美女呻吟| 国产日韩精品电影| 欧美精品一区二区免费| 成人免费视频xnxx.com| 国模极品一区二区三区| 中文字幕成人精品久久不卡| 亚洲视频在线看| 国产精品xxxxx| 欧美精品激情在线| 中文字幕亚洲一区在线观看| 中文国产成人精品久久一| 国产视频自拍一区| 国产婷婷色综合av蜜臀av| 蜜月aⅴ免费一区二区三区| 欧美精品在线第一页|