成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析:Oracle jdbc分頁效率的測(cè)試

數(shù)據(jù)庫 Oracle
經(jīng)過長(zhǎng)時(shí)間學(xué)習(xí)Oracle,現(xiàn)在就關(guān)于Oracle jdbc分頁效率的測(cè)試和大家分享一下,希望看完本文的你肯定有不少收獲。

經(jīng)過長(zhǎng)時(shí)間學(xué)習(xí)Oracle,現(xiàn)在就關(guān)于Oracle jdbc分頁效率的測(cè)試和大家分享一下,希望看完本文的你肯定有不少收獲。

先寫了一個(gè)最簡(jiǎn)單的jdbc分頁測(cè)試,在100萬記錄的情況下對(duì)數(shù)據(jù)庫進(jìn)行absolute定位操作,從20萬開始取1頁記錄大約是5秒,但是再往上面加,比如40萬開始就內(nèi)存溢出了。這就說明oracle的jdbc在用absolute的時(shí)候確實(shí)是要逐行讀取數(shù)據(jù)的。另外發(fā)現(xiàn),設(shè)置fetchsize ,速度會(huì)有10%左右的提高。

然后改用oracle 自身的 rownum的方式進(jìn)行分頁測(cè)試.

  1. SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM demo_table) A WHERE ROWNUM <= 200010) WHERE RN >= 200000  

 執(zhí)行速度確實(shí)快了一些, 大約在2-3秒之間。但是這種方式應(yīng)該是越到后面越慢,果然從90萬位置開始取, 大約是在13秒左右。這樣一來,修改實(shí)現(xiàn)方式好像就是必須的了, 但是奇怪的是,使用ibatis的分頁并沒有什么內(nèi)存溢出的問題,100萬記錄到最后一頁,感覺上大概也是10多秒。

看了一下ibatis的queryForList這個(gè)方法, debug了一下, 發(fā)現(xiàn)他有個(gè)判斷, 對(duì)于forward_only的類型的resultset 是用循環(huán)next來定位的(記得以前自己的分頁實(shí)現(xiàn)里面為了兼容性也做了這樣的處理),而不是我誤以為的absolute方式。

看來oracle的jdbc 對(duì)于forward_only的resultset做 next方法是不會(huì)產(chǎn)生真正的讀取操作。 用jdbc 測(cè)試了一下,果真如此。 從90萬記錄開始取,沒有出現(xiàn)內(nèi)存溢出的問題,執(zhí)行時(shí)間大約22秒左右。不知道這種差別在mysql和db2上是否也是如此,下次有時(shí)間再做一個(gè)測(cè)試看看。至于next和rownum執(zhí)行效率的差距, 我估計(jì)是前者必須用游標(biāo)順序定位。

現(xiàn)在的問題就是, 兩者比較, 執(zhí)行時(shí)間只相差一倍而已,還是一個(gè)數(shù)量級(jí)別的,就為了這個(gè)做修改,還導(dǎo)致sql不可以跨數(shù)據(jù)庫,好像一點(diǎn)都不值得。甚至如果用戶不直接翻到最后幾頁,根本感覺不到速度差別。后來想想,老外有時(shí)候也是腦子壞了, 什么樣的項(xiàng)目會(huì)需要你沒事去翻上百萬記錄。還是保持原狀,丟在哪再說吧

測(cè)試環(huán)境:oracle9i 2版, 西文字符集。沒對(duì)其他參數(shù)進(jìn)行測(cè)試。

以上就Oracle jdbc分頁效率的測(cè)試講了個(gè)簡(jiǎn)單的例子,要想了解的更多相關(guān)問題的解決方案,請(qǐng)留意51cto.com站上的相關(guān)帖子。

【編輯推薦】

  1. 修改Oracle存 儲(chǔ)過程所需代碼
  2. 對(duì)Oracle存儲(chǔ)過程的總結(jié)
  3. 實(shí)現(xiàn)Oracle存 儲(chǔ)過程的實(shí)際應(yīng)用的代碼 
  4. 深入高性能的 Oracle動(dòng)態(tài)SQL開發(fā) 
  5. Oracle SQL的 優(yōu)化規(guī)則解析 
責(zé)任編輯:佚名 來源: 老菜鳥的筆記本
相關(guān)推薦

2009-07-22 15:58:34

JDBC調(diào)用Oracl

2009-06-19 15:08:23

JDBC驅(qū)動(dòng)

2009-06-19 17:14:47

JDBC驅(qū)動(dòng)設(shè)置

2009-03-04 13:32:28

排序SQLOracle

2021-05-13 07:58:05

JDBC接口PreparedSta

2009-09-21 18:13:11

Hibernate S

2009-09-23 10:19:08

Hibernate分頁

2009-07-14 16:02:42

JDBC例子

2009-06-19 15:28:31

JDBC分布式事務(wù)

2009-07-07 09:38:37

ServletQuer

2010-04-14 15:22:53

Oracle JDBC

2009-07-22 11:11:39

iBATIS分頁實(shí)例ObjectDataS

2011-10-20 13:37:46

OracleNoSQL數(shù)據(jù)庫

2010-04-16 14:39:54

ORACLE鎖

2009-12-23 09:04:41

LINQ通用分頁

2010-04-14 14:14:42

Oracle用戶解鎖

2010-01-27 15:46:15

學(xué)習(xí)C++效率

2021-10-29 05:53:51

前端測(cè)試開發(fā)代碼

2010-11-18 13:32:12

Oracle分頁查詢

2009-07-20 15:51:45

JDBC連接Oracl
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美激情一区二区三区 | 日本精品视频一区二区 | 亚洲欧美国产毛片在线 | 91久久国产精品 | 成人h电影在线观看 | 国产欧美在线视频 | 97精品超碰一区二区三区 | 精品日韩欧美一区二区 | 二区高清| 亚洲成人精品一区 | 国产精品日日做人人爱 | 国产在线观看不卡一区二区三区 | 国产一区二区电影 | 粉嫩av| 成人啊啊啊| 亚洲精品在线视频 | 99re热这里只有精品视频 | 亚洲人a| 伊人久麻豆社区 | 天天操妹子 | 亚洲激情综合网 | 国产一区在线免费 | 久久综合香蕉 | 欧美a级成人淫片免费看 | 91精品国产美女在线观看 | 国产成人在线免费 | 红桃视频一区二区三区免费 | 影音先锋亚洲资源 | 五月婷婷亚洲 | 日韩综合在线播放 | 狠狠操av| 人妖videosex高潮另类 | 黄色骚片 | 久久精品欧美一区二区三区不卡 | 免费国产视频 | 狠狠久久久 | 久久久久久久久久久久91 | 精品欧美一区二区在线观看 | 国产福利视频导航 | 亚洲色图婷婷 | 色男人天堂av |