iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何进行CTAS和insert append的测试
  • 714
分享到

如何进行CTAS和insert append的测试

2023-06-04 14:06:58 714人浏览 薄情痞子
摘要

这篇文章跟大家分析一下“如何进行CTAS和insert append的测试”。内容详细易懂,对“如何进行CTAS和insert append的测试”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编

这篇文章跟大家分析一下“如何进行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 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 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;

关于如何进行CTAS和insert append的测试就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下编程网网站!

--结束END--

本文标题: 如何进行CTAS和insert append的测试

本文链接: https://www.lsjlt.com/news/238230.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++ 生态系统中流行库和框架的贡献指南
    作为 c++++ 开发人员,通过遵循以下步骤即可为流行库和框架做出贡献:选择一个项目并熟悉其代码库。在 issue 跟踪器中寻找适合初学者的问题。创建一个新分支,实现修复并添加测试。提交...
    99+
    2024-05-15
    框架 c++ 流行库 git
  • C++ 生态系统中流行库和框架的社区支持情况
    c++++生态系统中流行库和框架的社区支持情况:boost:活跃的社区提供广泛的文档、教程和讨论区,确保持续的维护和更新。qt:庞大的社区提供丰富的文档、示例和论坛,积极参与开发和维护。...
    99+
    2024-05-15
    生态系统 社区支持 c++ overflow 标准库
  • c++中if elseif使用规则
    c++ 中 if-else if 语句的使用规则为:语法:if (条件1) { // 执行代码块 1} else if (条件 2) { // 执行代码块 2}// ...else ...
    99+
    2024-05-15
    c++
  • c++中的继承怎么写
    继承是一种允许类从现有类派生并访问其成员的强大机制。在 c++ 中,继承类型包括:单继承:一个子类从一个基类继承。多继承:一个子类从多个基类继承。层次继承:多个子类从同一个基类继承。多层...
    99+
    2024-05-15
    c++
  • c++中如何使用类和对象掌握目标
    在 c++ 中创建类和对象:使用 class 关键字定义类,包含数据成员和方法。使用对象名称和类名称创建对象。访问权限包括:公有、受保护和私有。数据成员是类的变量,每个对象拥有自己的副本...
    99+
    2024-05-15
    c++
  • c++中优先级是什么意思
    c++ 中的优先级规则:优先级高的操作符先执行,相同优先级的从左到右执行,括号可改变执行顺序。操作符优先级表包含从最高到最低的优先级列表,其中赋值运算符具有最低优先级。通过了解优先级,可...
    99+
    2024-05-15
    c++
  • c++中a+是什么意思
    c++ 中的 a+ 运算符表示自增运算符,用于将变量递增 1 并将结果存储在同一变量中。语法为 a++,用法包括循环和计数器。它可与后置递增运算符 ++a 交换使用,后者在表达式求值后递...
    99+
    2024-05-15
    c++
  • c++中a.b什么意思
    c++kquote>“a.b”表示对象“a”的成员“b”,用于访问对象成员,可用“对象名.成员名”的语法。它还可以用于访问嵌套成员,如“对象名.嵌套成员名.成员名”的语法。 c++...
    99+
    2024-05-15
    c++
  • C++ 并发编程库的优缺点
    c++++ 提供了多种并发编程库,满足不同场景下的需求。线程库 (std::thread) 易于使用但开销大;异步库 (std::async) 可异步执行任务,但 api 复杂;协程库 ...
    99+
    2024-05-15
    c++ 并发编程
  • 如何在 Golang 中备份数据库?
    在 golang 中备份数据库对于保护数据至关重要。可以使用标准库中的 database/sql 包,或第三方包如 github.com/go-sql-driver/mysql。具体步骤...
    99+
    2024-05-15
    golang 数据库备份 mysql git 标准库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作