SQL> create table a2 (x char(2000) default 'x',y char(2000) default 'y' , z char(2000) default 'z');
表已创建。
SQL> insert into a2 select 'x','y','z' from all_objects where rownum <500;
已创建499行。
SQL> commit;
提交完成。
这是每块一行的数据(8k的数据库)
现在测试select操作产生的重做
SQL> select * from redo_size;
VALUE
----------
3296948
SQL> select * from a2 where x=y;
未选定行
SQL> select * from redo_size;
VALUE
----------
3297124
SQL> select 3297124 - 3296948 from dual;
3297124-3296948
---------------
176
看到产生了176字节的重做,这代表了完全扫描A2表期间修改的块头,所产生的重做日志,那么在某一刻,DBWR将把这些修改过的块再次写入硬盘中。现在,我们再次运行本次查询
SQL> select * from redo_size;
VALUE
----------
3297124
SQL> select * from a2 where x=y;
未选定行
SQL> select * from redo_size;
VALUE
----------
3297124
SQL>
会看到没有产生redo信息。块全部是干净的
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7551038/viewspace-616914/ ,如需转载,请注明出处,否则将追究法律责任。