国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

了解 SQL Server JDBC 驅(qū)動(dòng)程序中 Statement.setFetchSize(nSize) 方法的功能
P粉463811100
P粉463811100 2023-08-27 17:05:57
0
1
672
<p>我有一個(gè)非常大的表,每天都有數(shù)百萬條記錄,每天結(jié)束時(shí)我都會(huì)提取前一天的所有記錄。我這樣做是這樣的:</p> <pre class="brush:php;toolbar:false;">String SQL = "select col1, col2, coln from mytable where timecol = yesterday"; Statement.executeQuery(SQL);</pre> <p>問題是這個(gè)程序需要大約 2GB 內(nèi)存,因?yàn)樗鼘⑺薪Y(jié)果放入內(nèi)存中然后對(duì)其進(jìn)行處理。 </p> <p>我嘗試設(shè)置 <code>Statement.setFetchSize(10)</code> 但它從操作系統(tǒng)中獲取完全相同的內(nèi)存,沒有任何區(qū)別。我為此使用<em>Microsoft SQL Server 2005 JDBC 驅(qū)動(dòng)程序</em>。</p> <p>是否有任何方法可以像 Oracle 數(shù)據(jù)庫驅(qū)動(dòng)程序那樣以小塊形式讀取結(jié)果,當(dāng)執(zhí)行查詢時(shí)僅顯示幾行,并且當(dāng)您向下滾動(dòng)時(shí)會(huì)顯示更多結(jié)果?</p>
P粉463811100
P粉463811100

全部回復(fù)(1)
P粉186897465

在 JDBC 中,setFetchSize(int) 方法對(duì)于 JVM 內(nèi)的性能和內(nèi)存管理非常重要,因?yàn)樗刂茝?JVM 到數(shù)據(jù)庫的網(wǎng)絡(luò)調(diào)用數(shù)量以及相應(yīng)的數(shù)據(jù)量。用于結(jié)果集處理的 RAM。

本質(zhì)上,如果調(diào)用 setFetchSize(10) 并且驅(qū)動(dòng)程序忽略它,則可能只有兩個(gè)選項(xiàng):

  1. 嘗試使用不同的 JDBC 驅(qū)動(dòng)程序來支持獲取大小提示。
  2. 查看 Connection 上特定于驅(qū)動(dòng)程序的屬性(創(chuàng)建 Connection 實(shí)例時(shí)的 URL 和/或?qū)傩杂成洌?/li>

RESULT-SET 是為響應(yīng)查詢而在數(shù)據(jù)庫上編組的行數(shù)。 ROW-SET 是每次從 JVM 調(diào)用到 DB 時(shí)從 RESULT-SET 中提取的行塊。 這些調(diào)用的數(shù)量以及處理所需的 RAM 取決于 fetch-size 設(shè)置。

因此,如果 RESULT-SET 有 100 行并且 fetch-size 為 10, 在任何給定時(shí)間,都會(huì)有 10 個(gè)網(wǎng)絡(luò)調(diào)用來檢索所有數(shù)據(jù),使用大約 10*{row-content-size} RAM。

默認(rèn)的 fetch-size 是 10,這個(gè)值相當(dāng)小。 在發(fā)布的案例中,驅(qū)動(dòng)程序似乎忽略了獲取大小設(shè)置,在一次調(diào)用中檢索所有數(shù)據(jù)(需要大量 RAM,最佳最小網(wǎng)絡(luò)調(diào)用)。

ResultSet.next() 下發(fā)生的情況是,它實(shí)際上并沒有從 RESULT-SET 中一次獲取一行。它從(本地)ROW-SET 獲取該數(shù)據(jù),并在本地客戶端上的數(shù)據(jù)耗盡時(shí)從服務(wù)器獲取下一個(gè) ROW-SET(不可見)。

所有這些都取決于驅(qū)動(dòng)程序,因?yàn)樵O(shè)置只是一個(gè)“提示”,但在實(shí)踐中我發(fā)現(xiàn)這就是許多驅(qū)動(dòng)程序和數(shù)據(jù)庫的工作原理(在許多版本的 Oracle、DB2 和 MySQL 中得到驗(yàn)證)。 p>

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板