REDO 的内容:改变向量

2023-05-24,,

REDO 内容 ---改变向量

redo的内容并不是sql语句,他是放的一些改变,叫改变向量.

数据库恢复的时候并不是执行sql语句,而是一个物理的过程,是一个数据块的覆盖.是改变数据块的大小.

可以通过如下测试看出,两张表中栏位设置不同字符串长度,当修改数据时产生的redolog文件大小是不一样的。

创建2个表

SQL> create table t1(x char(1));

SQL> create table t2(x char(2000));

获取当前会话的sid:

SQL> select distinct sid from v$mystat;

开三个会话

SQL> select a.sid,b.name,a.value from v$sesstat a,v$statname b where a.statistic#=b.statistic# and b.name='redo size' and sid in(475,241);

表1中字符长度为1,表2长度为2000,所以他产生的redo更多一些.

所以redo里面保存的不是sql语句,也不是插入的数据值,只是和数据块改变的大小/多少有关系.

SQL> create table t1(x char(1));

Table created.

SQL> create table t2(x char(2000));

Table created.

SQL> select distinct sid from v$mystat;

       SID

----------

       475

SQL> select a.sid,b.name,a.value from v$sesstat a,v$statname b where a.statistic#=b.statistic# and b.name='redo size' and sid in(475,241);

       SID NAME

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

     VALUE

----------

       241 redo size

         0

       475 redo size

     27280

SQL> col name for a10;

SQL> select a.sid,b.name,a.value from v$sesstat a,v$statname b where a.statistic#=b.statistic# and b.name='redo size' and sid in(475,241);

       SID NAME            VALUE

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

       241 redo size           0

       475 redo size       27280

这两个会哈的redo size不一样大,我们quit退出,重新进一下

SQL> select a.sid,b.name,a.value from v$sesstat a,v$statname b where a.statistic#=b.statistic# and b.name='redo size' and sid in(475,241);

       SID NAME            VALUE

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

       241 redo size           0

       475 redo size           0

同时向2张表插入数据

SQL> select a.sid,b.name,a.value from v$sesstat a,v$statname b where a.statistic#=b.statistic# and b.name='redo size' and sid in(475,241);

       SID NAME            VALUE

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

       241 redo size        2668

       475 redo size         672

REDO 的内容:改变向量的相关教程结束。

《REDO 的内容:改变向量.doc》

下载本文的Word格式文档,以方便收藏与打印。