国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

fetchsize-pg與oralce用法區(qū)別

IT那活兒 / 995人閱讀
fetchsize-pg與oralce用法區(qū)別

測試代碼準備


Oracle環(huán)境準備


Pg環(huán)境準備


運行腳本


oracle環(huán)境執(zhí)行

java-Xmx64m -Xms32m -Xmn32m -Xss16m TEST "wangt" "wangt""jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=orcl))(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))">a.txt


postgres環(huán)境執(zhí)行


修改fetchsize后運行腳本


oracle環(huán)境執(zhí)行

java-Xmx64m -Xms32m -Xmn32m -Xss16m TEST2 "wangt" "wangt""jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=orcl))(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))">c.txt


postgres環(huán)境執(zhí)行

java-Xmx64m -Xms32m -Xmn32m -Xss16m TEST2 "postgres" "wangt""jdbc:postgresql://localhost:5432/wangt">b.txt


總結(jié)


JDBC解析SQL語句后,為每個Statement(包括PreparedStatement和CallableStatement)分配了兩個Buffer緩存數(shù)據(jù),byte[]和char[]。字符類型的數(shù)據(jù)(CHAR,VARCHAR2,NCHAR, etc. )緩存在char[]中,其他類型的數(shù)據(jù)緩存在byte[]中。在SQL語句解析后,語句所查詢的列的數(shù)據(jù)類型就已經(jīng)確定了,JDBC會根據(jù)這些信息和FetchSize 一起計算出緩存的大小,并分配內(nèi)存。所以如果不需要查詢某張表的所以列時,使用SELECT* FROM XXX是一種浪費內(nèi)存的行為,特別是表的列數(shù)多且數(shù)據(jù)量大的時候,很容易造成OOM,代碼也很少有select*。


通過以上測試可知,fetchsize的設置影響到jvm內(nèi)存消耗和查詢的響應時間,設置fetchsize時要權(quán)衡兩者。一般jdbc默認的fetchsize是10,這個值是比較小的,可以防查詢時outof momory的問題,但是程序的響應時間會變長。字段多的表或者行數(shù)大的表需要一個小的fetchsize值來降低查詢結(jié)果集的jvm內(nèi)存消耗;但是,字段少或者行數(shù)據(jù)小的表需要一個大的fetchsize值來降低查詢結(jié)果集的響應時間。要設置fetchsize,請在執(zhí)行查詢之前,對statement對象調(diào)用setFetchSize()。如果fetchsize為N,那么每次往返數(shù)據(jù)庫能返回N行數(shù)據(jù)。


案例


oracle遷移后,導出報表數(shù)據(jù)顯示如下報錯,因為oracle的fetchsize有默認值,所以可以導出,雖然比較慢。pg中默認值是0,全部寫到內(nèi)存中,服務器內(nèi)存不足,提示OOM。設置fetchsize后程序可以和往常一樣導出數(shù)據(jù)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/130066.html

相關文章

  • DBASK問答集萃(2)

    摘要:新晉技術(shù)專家下面是墨天輪部分新晉的技術(shù)專家。大家可以點擊往期閱讀墨天輪技術(shù)專家邀請函了解詳情,申請成為我們的技術(shù)專家,加入專家團隊,與我們一起創(chuàng)建一個開放互助的數(shù)據(jù)庫技術(shù)社區(qū)。新關聯(lián)公眾號墨天輪是一個開放互助的數(shù)據(jù)庫技術(shù)社區(qū)。 引言 近期我們在DBASK小程序增加了數(shù)據(jù)庫 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的專題欄目和一些新的技術(shù)...

    liuchengxu 評論0 收藏0
  • Oracle總結(jié)【視圖、索引、事務、用戶權(quán)限、批量操作】

    摘要:前言在總結(jié)的第一篇中,我們已經(jīng)總結(jié)了一些常用的相關的知識點了那么本篇主要總結(jié)關于視圖序列事務的一些內(nèi)容在數(shù)據(jù)庫中,我們可以把各種的語句分為四大類數(shù)據(jù)操縱語言,,,數(shù)據(jù)定義語言,,,數(shù)據(jù)控制語言事務控制語言,,回滾點批量操作何為批量操作,就是 前言 在Oracle總結(jié)的第一篇中,我們已經(jīng)總結(jié)了一些常用的SQL相關的知識點了...那么本篇主要總結(jié)關于Oralce視圖、序列、事務的一些內(nèi)容....

    junnplus 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<