這篇文章主要介紹“Oracle數(shù)據(jù)加載速度的優(yōu)化方法”,在日常操作中,相信很多人在Oracle數(shù)據(jù)加載速度的優(yōu)化方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”O(jiān)racle數(shù)據(jù)加載速度的優(yōu)化方法”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)建站長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為新沂企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站建設(shè),新沂網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
【說明】本文檔介紹如何將大量的數(shù)據(jù)加載到一張表中,并需要盡可能地插入新數(shù)據(jù);
【解決方法】
將表的日志屬性設(shè)置為NOLOGGING。
在使用子查詢來確定要插入哪些記錄時(shí),在查詢中加入INSERT /*+ APPEND */
使用VALUES子句的查詢中加入INSERT /*+ APPEND */
使用CREATE TABLE ... AS SELECT語句。
【實(shí)驗(yàn)測試】
1、創(chuàng)建測試表
SQL> create table T01 as select * from all_users where 1=0;
2、查看表的狀態(tài)
SQL> select table_name, logging from user_tables where table_name = 'T01';
TABLE_NAME LOG
------------- ----------------
T01 YES
3、修改表為NOLOGGING
alter table T01 nologging;
4、創(chuàng)建表TT并插入大量的數(shù)據(jù),用于等下對(duì)比用;
SQL> create table TT as select * from all_users ;
SQL> INSERT INTO TT SELECT * FROM TT; (反復(fù)執(zhí)行)
SQL> SELECT COUNT(1) FROM TT;
COUNT(1)
----------
1245184
5、創(chuàng)建對(duì)比表T02,沒有進(jìn)行任何優(yōu)化操作;
SQL> create table T02 as select * from all_users where 1=0;
6、進(jìn)行數(shù)據(jù)的插入測試
采用直接路徑操作與NOLOGGING的方法:消耗的時(shí)間時(shí)6.15s
SQL> timing start kk
SQL> insert /*+ APPEND */ into t01 select * from TT;
1245184 rows created.
SQL> timing show;
Elapsed: 00:00:06.15
常規(guī)的方法,顯示需要的時(shí)間為:15.39
SQL> timing start kk ;
SQL> insert /*+ APPEND */ into t02 select * from TT;
1245184 rows created.
SQL> timing show;
timing for: kk
Elapsed: 00:00:15.39
總結(jié):經(jīng)過測試通過直接路徑插入和nologging的方式確實(shí)可以明顯的提升數(shù)據(jù)的加載速度;
1、因?yàn)橥ㄟ^nologging可以產(chǎn)生最少量的重做;
2、避開了緩沖區(qū)緩存,直接將數(shù)據(jù)加載到數(shù)據(jù)文件中,提高了加載的效率。
但是同時(shí)這種方法也存在著以下的問題,畢竟不能什么好事都占完吧。不然oracle早就設(shè)置成默認(rèn)的配置了;
當(dāng)使用直接路徑向表中插入數(shù)據(jù)的時(shí)候,Oracle將會(huì)自動(dòng)把心的數(shù)據(jù)行插入到高水位線之上,這可能導(dǎo)致表占用大量的磁盤空間;
確保提交了通過直接路徑加載的數(shù)據(jù),否則將不能看到這些數(shù)據(jù)。因?yàn)镺racle會(huì)報(bào)0RA-12838的錯(cuò)誤,表明直接路徑加載的數(shù)據(jù)在能夠查詢之前必須先提交。
如果T01數(shù)據(jù)插入之后(插入之前有進(jìn)行備份),系統(tǒng)由于介質(zhì)故障需要進(jìn)行恢復(fù),這個(gè)時(shí)候把表RESTORE到故障之前,然后再RECOVER恢復(fù)到故障點(diǎn),這個(gè)時(shí)候表T01的數(shù)據(jù)是不能被恢復(fù)的;
【總結(jié)】以上這種數(shù)據(jù)的加載方式并不適用于生產(chǎn)過程中的重要業(yè)務(wù)數(shù)據(jù),比較適合一些類似報(bào)表類或中間庫的數(shù)據(jù)抽取或比對(duì)數(shù)據(jù)的抽?。?/p>
到此,關(guān)于“Oracle數(shù)據(jù)加載速度的優(yōu)化方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
網(wǎng)站欄目:Oracle數(shù)據(jù)加載速度的優(yōu)化方法
文章轉(zhuǎn)載:http://jinyejixie.com/article24/jdodje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站內(nèi)鏈、網(wǎng)站營銷、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)