Oracle數(shù)據(jù)加載速度的優(yōu)化方法

這篇文章主要介紹“Oracle數(shù)據(jù)加載速度的優(yōu)化方法”,在日常操作中,相信很多人在Oracle數(shù)據(jù)加載速度的優(yōu)化方法問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”O(jiān)racle數(shù)據(jù)加載速度的優(yōu)化方法”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)建站長(zhǎng)期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為新沂企業(yè)提供專業(yè)的網(wǎng)站制作、網(wǎng)站建設(shè),新沂網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

【說(shuō)明】本文檔介紹如何將大量的數(shù)據(jù)加載到一張表中,并需要盡可能地插入新數(shù)據(jù);

【解決方法】

  • 將表的日志屬性設(shè)置為NOLOGGING。

  • 在使用子查詢來(lái)確定要插入哪些記錄時(shí),在查詢中加入INSERT /*+ APPEND */

  • 使用VALUES子句的查詢中加入INSERT /*+ APPEND */

  • 使用CREATE TABLE ... AS SELECT語(yǔ)句。


【實(shí)驗(yàn)測(cè)試】
1、創(chuàng)建測(cè)試表
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,沒(méi)有進(jìn)行任何優(yōu)化操作;
SQL> create table T02 as select * from all_users where 1=0;

6、進(jìn)行數(shù)據(jù)的插入測(cè)試


采用直接路徑操作與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)過(guò)測(cè)試通過(guò)直接路徑插入和nologging的方式確實(shí)可以明顯的提升數(shù)據(jù)的加載速度;

1、因?yàn)橥ㄟ^(guò)nologging可以產(chǎn)生最少量的重做;

2、避開(kāi)了緩沖區(qū)緩存,直接將數(shù)據(jù)加載到數(shù)據(jù)文件中,提高了加載的效率。


但是同時(shí)這種方法也存在著以下的問(wèn)題,畢竟不能什么好事都占完吧。不然oracle早就設(shè)置成默認(rèn)的配置了;

  • 當(dāng)使用直接路徑向表中插入數(shù)據(jù)的時(shí)候,Oracle將會(huì)自動(dòng)把心的數(shù)據(jù)行插入到高水位線之上,這可能導(dǎo)致表占用大量的磁盤空間;

  • 確保提交了通過(guò)直接路徑加載的數(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)過(guò)程中的重要業(yè)務(wù)數(shù)據(jù),比較適合一些類似報(bào)表類或中間庫(kù)的數(shù)據(jù)抽取或比對(duì)數(shù)據(jù)的抽??;

到此,關(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ī)?lái)更多實(shí)用的文章!

網(wǎng)站欄目:Oracle數(shù)據(jù)加載速度的優(yōu)化方法
文章轉(zhuǎn)載:http://www.muchs.cn/article24/jdodje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站內(nèi)鏈網(wǎng)站營(yí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)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化