1. 程式人生 > >jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位(轉)

jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位(轉)

來自網路,我在做生成excel的時候也遇到這個吐血問題。

jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位

處理:
出錯的原因是ResultSet用的是可滾動結果集,正常情況下ResultSet是指標指向資料庫的資料,本身是不儲存資料庫的資料的,預設情況下就算是提交的sql能查詢處上億條的資料也是不消耗記憶體的,但是如果用的是可滾動結果集的ResultSet情況就不一樣了,ORACLE 是不支援可滾動結果集的,那麼我們用JDBC得到一個可滾動的結果集就是由JDBC自己支援的,也就是說結果集是要存放在記憶體中的,所以在海量資料的情況下也就是要消耗大量記憶體的,因此造成記憶體溢位也就是正常的了,所以如果是海量資料的話就不要用可滾動結果集就可以了。

相關推薦

jdbc操作oracle海量資料的時候ResultSet獲取所有返回資料出現記憶體溢位

來自網路,我在做生成excel的時候也遇到這個吐血問題。 jdbc在操作oracle海量資料的時候用ResultSet獲取所有的返回資料出現記憶體溢位 處理: 出錯的原因是ResultSet用的是可滾動結果集,正常情況下ResultSet是指標指向資料庫的資料,本身是不儲

Oracle數據庫測試和優化最佳實踐: OTest介紹

1-1 log 數據 bsp 下載 pan alt style 發送 當前Oracle數據庫最佳測試工具OTest * Otest是用於Oracle數據庫測試、優化、監控軟件。 * Otest是免費提供給Oracle客戶和廣大DBA工程師使用的軟件。由原廠技

海量數據存儲--分庫分表策略詳解

單例 海量 隨著 很難 分配 第一次 IT 策略 att 一、背景: 系統剛開始的時候,數據庫都是單庫單表結構。隨著業務量的增加進行第一次數據庫升級,根據業務垂直拆分數據庫,這樣多變成多個業務數據庫,每個數據庫裏面還是單表結構。接下來,繼續隨著業務量的繼續增加,單表

資料庫分庫分表(sharding)系列(五) 一種支援自由規劃無須資料遷移和修改路由程式碼的Sharding擴容方案...

作為一種資料儲存層面上的水平伸縮解決方案,資料庫Sharding技術由來已久,很多海量資料系統在其發展演進的歷程中都曾經歷過分庫分表的Sharding改造階段。簡單地說,Sharding就是將原來單一資料庫按照一定的規則進行切分,把資料分散到多臺物理機(我們稱之為Shard)上儲存,從

JS 獲取星期幾的四種寫法

今天是星期幾的4種JS程式碼寫法 第一種寫法  var str = ""; var week = new Date().getDay(); if (week == 0) { str = "今天是星期日"; } else if (week == 1)

OpenCV實現目標追蹤的八種方法

原文地址:http://m.elecfans.com/article/722414.html 編者按:目標跟蹤作為機器學習的一個重要分支,加之其在日常生活、軍事行動中的廣泛應用,很多國內外學者都對此頗有研究。本文將討論OpenCV上八種不同的目標追蹤演算法。

CSS開啟硬體加速來提高網站效能 CSS開啟硬體加速來提高網站效能

用CSS開啟硬體加速來提高網站效能(轉) 翻譯文章,原文地址:http://blog.teamtreehouse.com/increase-your-sites-performance-with-hardware-accelerated-css。 你知道我們可以在瀏覽器中用css開啟硬體加速,使G

CSS開啟硬體加速來提高網站效能

你知道我們可以在瀏覽器中用css開啟硬體加速,使GPU (Graphics Processing Unit) 發揮功能,從而提升效能嗎? 現在大多數電腦的顯示卡都支援硬體加速。鑑於此,我們可以發揮GPU的力量,從而使我們的網站或應用表現的更為流暢。 在桌面端和移動端用CSS開啟硬體加速 CSS an

JAVA8-lamda表示式和增強版Comparator進行排序

以前的排序一般物件實現Comparable或者Comparator介面,經常是通過匿名類類實現。 可以參見以前的博文 Java 中 Comparable 和 Comparator 比較 現在看看使用lamda表示式和java8中增強的Comparator介面進行排序。

JDBC操作Vertica資料庫,PreparedStatements物件實現批量插入資料

import java.sql.*; import java.util.Properties; public class BatchInsertExample { public static void main(String[] args) {          

JDBC操作Oracle資料庫前期準備及程式設計初體驗

第一步:前期準備 (1).首先需要獲取到所使用資料的驅動jar包,比如Oracle,在安裝好Oracle11g桌面版後,其已經自帶了orcale的jdbc了。我的電腦在安裝目錄:C:\app\youmingke\product\11.2.0\dbhome_1\jdbc\lib,下面有ojdbc5

tushare獲取股票歷史資料

我們運用python進行量化分析的時候需要載入證券資料,tushare為我們提供了證券市場資料介面。 tushare是以新浪財經、騰訊財經、上交所資料、深交所資料為基礎提供的Python介面。 安裝方法為 pip install tushare 也可以到tushare的官

檔案基本操作獲取資料夾下的所有資料夾及其名稱

獲取資料夾下的所有子資料夾及其名稱: 用到的主要控制元件:TextBox,FolderBrowserDialog,Button,TreeView等。 相關程式碼: private string temStr; Thread thdAddF

JDBC操作oracle

第一個 定義 而是 stat stmt name 使用 for 日期 JDBC (java DataBase Connection)java數據庫連接使用jdbc使用java.sql包下的常用的幾個接口:Connection 用於獲得數據庫的連接Statement 用於對

WebService實現對數據庫進行操作(添加+刪除+修改)

add exe dispose eth 連接 字段 article log conn 轉自:http://blog.csdn.net/beyondqd/article/details/6703169 表為User,字段有 編號: int id,用戶名:string User

JS獲取地址欄參數的方法超級簡單

api dex document keyword bstr 網絡資源 靜態 sca 返回 方法一:采用正則表達式獲取地址欄參數:( 強烈推薦,既實用又方便!) function GetQueryString(name) { var

基於HTTP協議的幾種實時資料獲取技術

轉載自五月的倉頡 HTTP協議 HTTP協議是建立在TCP協議上的應用層協議,協議的本質是請求----應答: 即對於HTTP協議來說,服務端給一次響應後整個請求就結束了,這是HTTP請求最大的特點,也是由於這個特點,HTTP請求無法做到的是服務端向客戶端主動推送資料。 但由於H

Form表單獲取後臺返回資料

問題描述 一般的form表單提交是單向的:只能給伺服器傳送資料,但是無法獲取伺服器返回的資料,也就是無法讀取HTTP應答包。 想要真正的半雙工通訊一般需要使用Ajax, 但是Ajax對檔案傳輸也很麻煩。 解決方法 jQuery封裝了一個form表單提交有

獲取jqGrid中選中行的資料以及 jqGrid獲得所有資料的方法

獲取jqGrid中選擇的行的資料以及 jqGrid獲得所有行資料的方法 獲取jqGrid中選擇的行的資料: 獲取選擇一行的id,如果你選擇多行,那下面的id是最後選擇的行的id:

java實現oracle 快速解除安裝資料並ftp上傳資料給各個其他業務系統[從學習到工作]

1.java解除安裝資料(ociuldr user=anysql/anysql query="select * from tab" field="|") 我們通常會採用jdbc操作資料庫然後用io寫入檔案,而在大資料的情況下用io寫入檔案是比較慢的,所以在工作中,我們會採用oracle