成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

IT那活兒 / 1010人閱讀
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的設(shè)置影響到j(luò)vm內(nèi)存消耗和查詢的響應(yīng)時間,設(shè)置fetchsize時要權(quán)衡兩者。一般jdbc默認的fetchsize是10,這個值是比較小的,可以防查詢時outof momory的問題,但是程序的響應(yīng)時間會變長。字段多的表或者行數(shù)大的表需要一個小的fetchsize值來降低查詢結(jié)果集的jvm內(nèi)存消耗;但是,字段少或者行數(shù)據(jù)小的表需要一個大的fetchsize值來降低查詢結(jié)果集的響應(yīng)時間。要設(shè)置fetchsize,請在執(zhí)行查詢之前,對statement對象調(diào)用setFetchSize()。如果fetchsize為N,那么每次往返數(shù)據(jù)庫能返回N行數(shù)據(jù)。


案例


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

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

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

相關(guān)文章

  • DBASK問答集萃(2)

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

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

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

    junnplus 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

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