您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“如何進(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)站!
免責(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)容。