2009-04-20 55 views
1

我試圖比較不同的調用(getBytes/getBinary/getBlob)從BLOB列獲取數據的性能。獲取CLOB/BLOB數據的jdbc性能測試

我現在正在做的是跟蹤通過jdbc驅動程序執行語句並遍歷結果集的時間。

//Mark time 
ResultSet resultSet = stmt.executeQuery(query); 
resultSet.getBytes(1) // or resultSet.getBinary or resultSet.getBlob 
//Mark time again 

這是做事情,因爲一旦我運行一個查詢,連續通話往往是因爲數據庫引擎的緩存更快的非常不準確的方式。

有沒有更好的方法來對這些不同的調用進行性能評估?

回答

1

每個基準運行之間重新啓動? <j/k>

老實說,我認爲最好的辦法就是加載一張含有大量clob/blob數據的表格。也就是說,像這樣的一個假表「創建表測試表(id整數主鍵,測試數據blob);'。一旦你加載了一些測試數據(按順序增加ID),就可以隨機查詢你的程序(使用Math.random),並將其用於比較。

這應該消除大多數與緩存相關的變化,並且可以很好地瞭解各種blob檢索方法在性能上是否存在顯着差異。