这篇文章跟大家分析一下“如何进行CTAS和insert append的测试”。内容详细易懂,对“如何进行CTAS和insert append的测试”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“如何进行CTAS和insert append的测试”的知识吧。
8174上的一个测试,非归档模式:
代码: 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 数据库日志模式 非存档模式 自动存档 启用 存档终点 D:databaseoracleora817RDBMS 最早的概要信息日志序列 1488 当前日志序列 1491 SQL> select * from redo_size; VALUE ---------- 91848 SQL> create table test nologging as select * from all_objects; 表已创建。 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; 表已创建。 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; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup mount ORACLE 例程已经启动。 Total System Global Area 65648668 bytes Fixed Size 75804 bytes Variable Size 44523520 bytes Database Buffers 20971520 bytes Redo Buffers 77824 bytes 数据库装载完毕。 SQL> alter database archivelog 2 / 数据库已更改。 SQL> alter database open; 数据库已更改。 SQL> drop table test; 表已丢弃。 SQL> select * from redo_size; VALUE ---------- 30520 SQL> create table test as select * from all_objects; 表已创建。 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; 表已创建。 SQL> select * from redo_size; VALUE ---------- 3125328 SQL> select (2953668-30520) redo,(3125328-3070020) redo_nolog from dual; REDO REDO_NOLOG ---------- ---------- 2923148 55308 '在归档模式下的近一步测试,比较ctas和ctas无数据+ 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; 表已创建。 SQL> insert /*+append*/into test select * from all_objects; 已创建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; 表已创建。 SQL> insert /*+append*/ into test select * from all_objects; 已创建25474行。 SQL> commit; 提交完成。 SQL> select * from redo_size; VALUE ---------- 6167588 SQL> select (6079860-3155764) logging ,(6167588-6110356)nologging from dual; LOGGING NOLOGGING ---------- ---------- 2924096 57232 '根据这个结果,我们看到:noarchivelog下的CTAS 的redo=noarchivelog下的CTAS nologging的redo =archivelog下的CTAS nologging的redo这三种情况下,都对系统产生了较少的redo size只有在archivelog 下CTAS,才产生了较多的redo size比较了CTAS和CTAS+insert append后,实际上(archivelog mode):CTAS nologging redo =CTAS(no data) nologing +insert append redo size; CTAS redo =CTAS(no data) +insert append redo size; AI代码助手复制代码AI代码助手复制代码
关于如何进行CTAS和insert append的测试就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下亿速云网站!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:http://blog.itpub.net/31414383/viewspace-2132797/