zoukankan      html  css  js  c++  java
  • REDO 的内容:改变向量

    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

     

  • 相关阅读:
    shell Builtin variables(shell内建变量)
    [置顶] 九度笔记之 1434:今年暑假不AC
    OpenRisc-45-or1200的ID模块分析
    hdu1556 Color the ball
    PB C/S轉B/S ODBC方式連接數據庫
    Django的安装配置和开发
    通过一个月时间字段分组
    如何加入该网站for Linux(绑定域名)
    LeetCode 36 Sudoku Solver
    POJ 1986 Distance Queries LCA两点距离树
  • 原文地址:https://www.cnblogs.com/thescentedpath/p/7060958.html
Copyright © 2011-2022 走看看