ITPub博客

首页 > 数据库 > Oracle > undo用于将数据库逻辑的恢复到原来的样子

undo用于将数据库逻辑的恢复到原来的样子

原创 Oracle 作者:jelephant 时间:2013-12-07 19:09:13 0 删除 编辑
1、创建一个表
JEL@JEL >create table t as select * from all_objects where 0=1;

Table created.

JEL@JEL >select * from t;

no rows selected

2、查询表时IO情况
JEL@JEL >SET AUTOTRACE TRACEONLY STATISTICS;
JEL@JEL >select * from t;

no rows selected


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          3  consistent gets
          0  physical reads
          0  redo size
        995  bytes sent via SQL*Net to client
        369  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed
JEL@JEL >set autotrace off;

3、插入数据并回滚
JEL@JEL >insert into t select * from all_objects;

9258 rows created.

JEL@JEL >select count(*) from t;

  COUNT(*)
----------
      9258

JEL@JEL >rollback;

Rollback complete.

JEL@JEL >select count(*) from t;

  COUNT(*)
----------
         0

4、查询表时的IO情况
JEL@JEL >set autotrace traceonly statistics;
JEL@JEL >select * from t;

no rows selected


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
        120  consistent gets
          0  physical reads
          0  redo size
        995  bytes sent via SQL*Net to client
        369  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed

JEL@JEL >set autotrace off;

insert导致将一些块增加到表的HWM之下,这些块并没有因为回滚而消失,而是已经格式化,只不过现在为空。全表扫描必须读取这些块,看看其中是否包含行。这说明,回滚只是一个将数据库还原的逻辑操作。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29337971/viewspace-1062661/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 测量redo
请登录后发表评论 登录
全部评论

注册时间:2013-12-07

  • 博文量
    143
  • 访问量
    681871