关于Oracle 临时表,参考我的Blog:

Oracle 临时表

http://blog.csdn.net/tianlesoftware/archive/2009/10/20/4705283.aspx

对Oracle 临时表的操作,会产生redo 和undo。

先看一个示例:

SYS@anqing1(rac1)> CREATE GLOBAL TEMPORARY TABLE dave_test  (id number,name varchar2(20)) ON COMMIT DELETE ROWS;

Table created.

SYS@anqing1(rac1)> set autotrace on

SYS@anqing1(rac1)> insert into dave_test values(1,'dave');

1 row created.

Execution Plan

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

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

| Id  | Operation        | Name | Rows  | Bytes | Cost (%CPU)| Time     |

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

|   0 | INSERT STATEMENT |      |     1 |   100 |     1   (0)| 00:00:01 |

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

Statistics

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

2  recursive calls

8  db block gets

1  consistent gets

0  physical reads

284  redo size

662  bytes sent via SQL*Net to client

571  bytes received via SQL*Net from client

3  SQL*Net roundtrips to/from client

1  sorts (memory)

0  sorts (disk)

1  rows processed

SYS@anqing1(rac1)>

关于这些统计数据的分析,参考我的Blog:

Oracle Explain Plan

http://blog.csdn.net/tianlesoftware/archive/2010/08/20/5827245.aspx

在看下为什么对临时表操作会产生redo。

因为我们可以对临时表的操作进行回滚,即会产生undo数据; 但是所有undo都受到redo的保护,就是说假设此时数据库崩溃了,下次启动会利用redo把这些undo再次还原出来,然后利用这些undo进行反操作,撤销上次那个崩溃的事务。

这些undo里面可能有普通表的,也有临时表的, redo都会把它们恢复出来。

这个就是我们的一个数据库roll forward和 roll back的顺序问题, 在Crash recover 的时候必须先前滚,用redo 恢复出undo 之后,在用undo 回滚相关事务操作信息。简单点说REDO的作用就是记录所有的数据库更改,包括UNDO表空间在内。

Oracle 实例恢复时 前滚(roll forward) 后滚(roll back) 问题

http://blog.csdn.net/tianlesoftware/archive/2011/03/29/6286330.aspx

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

Blog: http://blog.csdn.net/tianlesoftware

Email: dvd.dba@gmail.com

DBA1 群:62697716(满);   DBA2 群:62697977(满)   DBA3 群:62697850(满)

DBA 超级群:63306533(满);  DBA4 群: 83829929  DBA5群: 142216823

DBA6 群:158654907  聊天 群:40132017   聊天2群:69087192

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

临时表 DML 产生redo 问题说明相关推荐

  1. oracle 5632,Oracle系统默认临时表空间以及redo日志文件问题处理

    本人现在要把Oracle的数据同步到MySQL,运用的ETL工具,由于数据量很大,而且有子查询要用到临时表空间,导致原来的该临时表空间 问题:本人现在要把Oracle的数据同步到MySQL,运用的ET ...

  2. Oracle——redo+undo总结

    <Oracle------redo> 重做日志文件(redo log file)对数据库来说至关重要,他们是数据库的事务日志: Oracle数据库维护着两类重做日志文件:在线重做日志文件( ...

  3. redo和undo 详解

    通常对undo有一个误解,认为undo用于数据库物理地恢复到执行语句或事务之前的样子,但实际上并非如此.数据库只是逻辑地恢复到原来的样子,所有修改都被逻辑地取消,但是数据结构以及数据库块本身在回滚后可 ...

  4. oracle查询数据放入临时表,ORACLE Temporary Tables临时表更适合做插入和查询操作

    1简介 ORACLE数据库除了可以保存永久表外,还可以建立临时表temporary tables.这些临时表用来保存一个会话SESSION的数据,或者保存在一个事务中需要的数据.当会话退出或者用户提交 ...

  5. oracle简单序列,oracle序列生成器(sequence)使用的一点小注意

    oracle序列生成器(sequence)使用的一点小注意 有人遇到这么一个问题,访问一个序列怎么出错了,错误如下: ORA-08002: 序列 SEQ_GX.CURRVAL 尚未在此会话中定义 这是 ...

  6. Oracle 9i与MS SQL Server 2000之比较连载五.zz

    http://kb.cnblogs.com/a/1153156 Oracle 9i与MS SQL Server 2000之比较连载五 2008-04-14 18:13 四.Oracle中新的数据库对象 ...

  7. Oracle优化培训笔记-第一节

    Oracle Architectural components 第0章:分析过程 资源,CPU,内存,磁盘 1. 讲解 dell亚太区数据库迁移的工作,跨版本,跨操作系统迁移,大数据量迁移 goteg ...

  8. oracle怎么使用触发器,Oracle触发器的使用

    Oracle触发器的使用 触发器是指存放在数据库中,并被隐藏执行的存储过程.在Oracle8i之前,只允许基于表或视图的DML操作(insert,update,delete)建立触发器,在oracle ...

  9. 《收获,不止Oracle》表的设计之五朵金花

    表设计主要强调什么场合该选择什么技术,没有最高级的技术,只有最适合的技术. 1.表的特性 普通堆表的不足之处  1.查看产生多少日志 [oracle@oracle-db-19c ~]$ sqlplus ...

最新文章

  1. shell脚本替换文件中字符
  2. SQL Cache Invalidation
  3. html的选择器使用
  4. Partition Array by Odd and Even
  5. redis 公网 安全_请务必注意 Redis 安全配置,否则将导致轻松被入侵
  6. 第一次用Axure~
  7. 如何向Mac Dictionary App添加其他语言
  8. 疯狂ios讲义疯狂连载之图像控件(UIImageView)
  9. WebStorm设置px转换rem,亲测有效!
  10. 有哪些产品适合做引流?什么样的产品才适合做引流款
  11. 零基础转行到软件测试如何拿到所谓的高薪?
  12. 分享一个网站,英文名称随机生成,随机生成英文名称
  13. 留学生论文essay写作字数不够怎么办?
  14. C语言自定义函数的声明
  15. react本地储存_如何在React项目中利用本地存储
  16. Tomcat基本使用以及项目部署。
  17. 苹果a12_苹果扛起性价比大旗,A12+512GB,大降5000元
  18. n用matlab怎么表示什么意思,matlab中n=[0:1:N-1];是什么意思
  19. 开漏极、开集电极输出
  20. MySQL数据库,如何批量的将字段的字符集由utf8改为utf8mb4

热门文章

  1. PowerBI新功能: 自定义数据连接器(Data Connector)
  2. 思科中国创新中心总部正式落户广州
  3. 多线程大文件断点续传和流媒体的处理方法
  4. UVA 11627 Slalom(二分)
  5. 《JavaScript入门经典》学习笔记1
  6. gcc 无法编译问题解决
  7. 【C#文件锁】C#加密解密文件小工具
  8. Oracle数据库实用脚本
  9. iphone Quartz2D使用心得
  10. 使用JSP处理用户注册和登陆