我可以查看 Java ResultSet 向資料庫請求資料的次數嗎?我有一個大表(100 萬條記錄),我想看看它從資料庫中提取了多少資料塊。我的資料庫是甲骨文。
uj5u.com熱心網友回復:
“結果集”檔案指出:
獲取大小
默認情況下,當 Oracle JDBC 運行查詢時,它一次從資料庫游標中檢索 10 行的結果集。這是默認的 Oracle 行提取大小值。您可以通過更改行提取大小值來更改每次訪問資料庫游標時檢索到的行數。
標準 JDBC 還允許您指定查詢的每個資料庫往返獲取的行數,這個數字稱為獲取大小。在 Oracle JDBC 中,行預取值用作陳述句物件中的默認提取大小。設定提取大小會覆寫行預取設定并影響通過該陳述句物件運行的后續查詢。
提取大小也用于結果集中。當陳述句物件運行查詢時,陳述句物件的獲取大小被傳遞給查詢產生的結果集物件。但是,您也可以在結果集物件中設定提取大小以覆寫傳遞給它的陳述句提取大小。
筆記:
生成結果集后對陳述句物件的獲取大小所做的更改不會影響該結果集。
結果集提取大小(顯式設定或默認情況下等于傳遞給它的陳述句提取大小)確定在對該結果集的任何后續資料庫訪問中檢索的行數。這包括完成原始查詢仍需要的任何行程,以及將資料重新提取到結果集中的任何行程。可以顯式或隱式地重新獲取資料,以更新滾動敏感或滾動不敏感/可更新的結果集。
設定獲取大小
以下方法在所有
Statement、PreparedStatement、CallableStatement和ResultSet物件中都可用,用于設定和獲取獲取大小:void setFetchSize(int rows) throws SQLException int getFetchSize() throws SQLException要設定查詢的獲取大小,請
setFetchSize在運行查詢之前呼叫陳述句物件。如果將提取大小設定為N,則N每次訪問資料庫都會提取行。運行查詢后,您可以呼叫
setFetchSize結果集物件來覆寫傳遞給它的陳述句物件獲取大小。這將影響任何后續訪問資料庫以獲取原始查詢的更多行,以及影響以后重新獲取行。
如果您想知道訪問資料庫的次數,請呼叫getFetchSize()該陳述句,然后將結果集中的總行數除以獲取大小(并向上取整)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/461912.html
下一篇:SQL查詢生成重復項
