①创建表:

SQL> create table t4 as select * from all_objects;

Table created.

②设置t4处于nologging:

SQL> alter table t4 nologging;

Table altered.

③开启autotrace查看执行计划:

SQL> set autotrace on

④插入数据:

SQL> insert into t4 select * from t4;

85184 rows created.

Execution Plan
----------------------------------------------------------
Plan hash value: 2560505625 --------------------------------------------------------------------------------
- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time
| --------------------------------------------------------------------------------
- | 0 | INSERT STATEMENT | | 172K| 25M| 661 (1)| 00:00:08
| | 1 | LOAD TABLE CONVENTIONAL | T4 | | | |
| | 2 | TABLE ACCESS FULL | T4 | 172K| 25M| 661 (1)| 00:00:08
| --------------------------------------------------------------------------------
- Note
-----
- dynamic sampling used for this statement (level=2) Statistics
----------------------------------------------------------
162 recursive calls
6834 db block gets
3798 consistent gets
1215 physical reads
9943036 redo size
838 bytes sent via SQL*Net to client
788 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
5 sorts (memory)
0 sorts (disk)
85184 rows processed

⑤使用append插入数据:

SQL> insert /*+ append */ into t4 select * from t4;

170368 rows created.

Execution Plan
----------------------------------------------------------
ERROR:
ORA-12838: cannot read/modify an object after modifying it in parallel SP2-0612: Error generating AUTOTRACE EXPLAIN report Statistics
----------------------------------------------------------
49 recursive calls
2687 db block gets
2529 consistent gets
0 physical reads
28156 redo size
823 bytes sent via SQL*Net to client
802 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
170368 rows processed

比较一下普通插入和append插入生成的redo大小,明显append插入时生成的redo小很多。

SQL> insert /*+ append */ into t4 select * from t4;

170368 rows created.

Execution Plan

----------------------------------------------------------

ERROR:

ORA-12838: cannot read/modify an object after modifying it in parallel

SP2-0612: Error generating AUTOTRACE EXPLAIN report

Statistics

----------------------------------------------------------

49  recursive calls

2687  db block gets

2529  consistent gets

0  physical reads

28156  redo size

823  bytes sent via SQL*Net to client

802  bytes received via SQL*Net from client

3  SQL*Net roundtrips to/from client

1  sorts (memory)

0  sorts (disk)

170368  rows processed

【测试】自行建表并演示append+nologging,并描述数据写入后产生的效果的更多相关文章

  1. MySQL-Front 建表引发的一点小思考(数据表格模版)

    我们建表的时候,有一些字段总是会常用到的.也就是每一张表都会有这些字段. 我用mysql有一点时间了,今天(2016-02-27 21:53:38)在用mysql-front建表的时候,感觉有点点不太 ...

  2. hive建表没使用LZO存储格式,可是数据是LZO格式时遇到的问题

    今天微博大数据平台发邮件来说.他们有一个hql执行失败.可是从gateway上面的日志看不出来是什么原因导致的,我帮忙看了一下.最后找到了问题的解决办法,下面是分析过程: 1.执行失败的hql: IN ...

  3. 根据javabean转换为mysql建表语句与mapper内容

    原文地址:  https://www.cnblogs.com/Jeffscnblog/p/10072483.html 一般上,我们会使用数据库表转换为javabean.dao.或是mapper,就叫逆 ...

  4. 关于加快INSERT语句执行速度和HINT /*+ append */及/*+ append nologging */的使用

    (非归档模式下)创建表T01: SQL> create table t01 as select * from dba_objects where 1=2; Table created. (非归档 ...

  5. SQL SERVER 自动生成 MySQL 表结构及索引 的建表SQL

          SQL SERVER的表结构及索引转换为MySQL的表结构及索引,其实在很多第三方工具中有提供,比如navicat.sqlyog等,但是,在处理某些数据类型.默认值及索引转换的时候,总有些 ...

  6. SharePoint代码建表(实战)

    分享人: 广州华软 无名 一. 前言 虽然SharePoint提供可视化界面建表,但是,不利于开发自动化部署.通常,如果通过手动建表,我们先在测试环境建表,然后存为模板,再上传到实际环境,最后根据模板 ...

  7. Mybatis动态建表

    在网上查了很多,都说Mybatis不支持动态建表,心凉了一节.还好找到这么一篇,找到了希望:http://www.zzzyk.com/show/ec5660d9cf1071b3.htm 经过在mysq ...

  8. 小贝_mysql建表以及列属性

    mysql建表以及列属性 简要: 一.建表原则 二.具体的列属性说明 一.建表原则 建表: 事实上就是声明列的过程,数据终于是以文件的形式放在硬盘(内存) 列: 不同的列类型占的空间不一样. 选列的原 ...

  9. 【转载】SQL语句将一个表的数据写入到另一个表中

    在日常的数据库运维过程中,有时候需要将Select查询出来的数据集写入到另一个数据表中,其中一种方式是通过存储过程循环写入数据,另一种简便的方式是直接使用Insert Into语句后面跟上Select ...

随机推荐

  1. iphone dev 入门实例3:Delete a Row from UITableView

    How To Delete a Row from UITableView I hope you have a better understanding about Model-View-Control ...

  2. unity客户端与c++服务器之间的简单通讯_1

    // 服务器 # pragma once using namespace std; # include <iostream> # include <string> # incl ...

  3. 使用BlockingQueue的生产者消费者模式

    BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利.使用场景. 首先它是一个队列,而一个队 ...

  4. BIP_开发案例05_BI Pubisher标准做法以BIP.XML为数据源以BIP.RTF为模板的简单例子(案例)

    2014-05-31 Created By BaoXinjian

  5. PLSQL_PLSQL中DML/DDL/DCL的概念和区分(概念)

    2014-06-20 Created By BaoXinjian

  6. NeHe OpenGL教程 第二十三课:球面映射

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  7. linux常用命令 2

    netstat 显示网络统计信息的命令 此命令用来显示整个 netstat -anp p显示名称的名字 kill -9 进程号 traceroute 显示数据包历程 查询 系统有哪些shellcat ...

  8. expdp导出数据库

    源地址:http://www.cnblogs.com/luluping/archive/2010/03/16/1687093.html 使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客 ...

  9. win10安装软件被阻止后

    以管理员身份运行CMD,然后在cmd里执行就可以了.

  10. SQL Server 2005中的分区表(三):将普通表转换成分区表(转)

    在设计数据库时,经常没有考虑到表分区的问题,往往在数据表承重的负担越来越重时,才会考虑到分区方式,这时,就涉及到如何将普通表转换成分区表的问题了. 那么,如何将一个普通表转换成一个分区表 呢?说到底, ...