溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行CTAS和insert append的測(cè)試

發(fā)布時(shí)間:2022-01-19 11:21:39 來(lái)源:億速云 閱讀:108 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這篇文章跟大家分析一下“如何進(jìn)行CTAS和insert append的測(cè)試”。內(nèi)容詳細(xì)易懂,對(duì)“如何進(jìn)行CTAS和insert append的測(cè)試”感興趣的朋友可以跟著小編的思路慢慢深入來(lái)閱讀一下,希望閱讀后能夠?qū)Υ蠹矣兴鶐椭O旅娓【幰黄鹕钊雽W(xué)習(xí)“如何進(jìn)行CTAS和insert append的測(cè)試”的知識(shí)吧。

8174上的一個(gè)測(cè)試,非歸檔模式:

代碼:

SQL> select * from v$version;
BANNER ---------------------------------------------------------------- Oracle8i Enterprise Edition Release 8.1.7.4.1 -
Production
PL/SQL Release 8.1.7.4.0 -
Production
CORE    8.1.7.2.1       Production
TNS for 32-bit Windows: Version 8.1.7.4.0 -
Production
NLSRTL Version 3.4.1.0.0 -
Production

SQL> archive log
list
數(shù)據(jù)庫(kù)日志模式             非存檔模式
自動(dòng)存檔             啟用
存檔終點(diǎn)            D:
databaseoracleora817RDBMS
最早的概要信息日志序列     1488
當(dāng)前日志序列           1491  


SQL> select * from redo_size
;

   
VALUE
----------
   
91848

SQL> create table test nologging as select * from all_objects
;
表已創(chuàng)建。

SQL> select * from redo_size
;

   
VALUE
----------
   
147148

SQL> drop table test
;
表已丟棄。

SQL> select * from redo_size
;

   
VALUE
----------
   
177584

SQL> create table test as select * from all_objects
;
表已創(chuàng)建。

SQL> select * from redo_size
;

   
VALUE
----------
   
232892        

SQL> select (232892 - 177584 ) redo,(147148-91848) redo_nolog from dual
;

     
REDO REDO_NOLOG
---------- ----------
   
55308      55300 '



在歸檔模式下的情況:

代碼:

SQL> shutdown immediate; 數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉。
已經(jīng)卸載數(shù)據(jù)庫(kù)。
ORACLE 例程已經(jīng)關(guān)閉。
SQL>
startup mount
ORACLE 例程已經(jīng)啟動(dòng)。

Total System Global
Area   65648668 bytes
Fixed Size                    75804 bytes
Variable Size              44523520 bytes
Database Buffers           20971520 bytes
Redo Buffers                  77824 bytes
數(shù)據(jù)庫(kù)裝載完畢。
SQL>
alter database archivelog
 2  
/
數(shù)據(jù)庫(kù)已更改。

SQL> alter database open
;
數(shù)據(jù)庫(kù)已更改。    

SQL> drop table test
;
表已丟棄。

SQL> select * from redo_size
;

   
VALUE
----------
   
30520
     
SQL> create table test as select * from all_objects
;
表已創(chuàng)建。

SQL> select * from redo_size
;

   
VALUE
----------
 
2953668

SQL> drop table test
;
表已丟棄。

SQL> select * from redo_size
;

   
VALUE
----------
 
3070020

SQL> create table test nologging as select * from all_objects
;
表已創(chuàng)建。

SQL> select * from redo_size
;

   
VALUE
----------
 
3125328

SQL> select (2953668-30520) redo,(3125328-3070020) redo_nolog from dual
;

     
REDO REDO_NOLOG
---------- ----------
 
2923148      55308 '



在歸檔模式下的近一步測(cè)試,比較ctas和ctas無(wú)數(shù)據(jù)+ insert append 的redo size:

代碼:

SQL> drop table test;
表已丟棄。

SQL> select * from redo_size
;

   
VALUE
----------
 
3155764

SQL> create table test as select * from all_objects where 1=0
;
表已創(chuàng)建。

SQL> insert /*+append*/into test select * from all_objects
;
已創(chuàng)建25474行。

SQL> commit
;
提交完成。

SQL> select * from redo_size
;

   
VALUE
----------
 
6079860
   
SQL> select  (6079860-3155764) logging from dual
;

(6079860-3155764
)
-----------------
         
2924096    

   
SQL> drop table test
;
表已丟棄。

SQL> select * from redo_size
;

   
VALUE
----------
 
6110356

SQL> create table test nologging as select * from all_objects where 1=0
;
表已創(chuàng)建。

SQL> insert /*+append*/ into test select * from all_objects
;
已創(chuàng)建25474行。

SQL> commit
;
提交完成。

SQL> select * from redo_size
;

   
VALUE
----------
 
6167588
   
SQL> select (6079860-3155764) logging ,(6167588-6110356)nologging from dual
;

 
LOGGING  NOLOGGING
---------- ----------
 
2924096      57232 '



根據(jù)這個(gè)結(jié)果,我們看到:
noarchivelog下的CTAS 的redo=noarchivelog下的CTAS nologging的redo =archivelog下的CTAS nologging的redo
這三種情況下,都對(duì)系統(tǒng)產(chǎn)生了較少的redo size
只有在archivelog 下CTAS,才產(chǎn)生了較多的redo size

比較了CTAS和CTAS+insert append后,實(shí)際上(archivelog mode):
CTAS nologging redo =CTAS(no data) nologing +insert append redo size;

CTAS redo =CTAS(no data) +insert append redo size;

關(guān)于如何進(jìn)行CTAS和insert append的測(cè)試就分享到這里啦,希望上述內(nèi)容能夠讓大家有所提升。如果想要學(xué)習(xí)更多知識(shí),請(qǐng)大家多多留意小編的更新。謝謝大家關(guān)注一下億速云網(wǎng)站!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI