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/
,如需转载,请注明出处,否则将追究法律责任。