blogger

    blogger
  • hot log

  • comment

    twitter

    • 12.10.xC6出来时候碰到"Could not determine encryption mode from page zero",竟果然是BUG!http://www-01.ibm.com/support/docview.wss?rs=630&uid=swg21973408

      2015-12-21 20:15

    • 空间已经转移到新加坡,希望会好一些。

      2015-11-16 14:34

    • 增加新域名liaosnet.cc,与liaosnet.com同指向。

      2015-10-09 15:25

    • 空间迁移到香港。或许速度会快一点。。

      2014-02-13 20:10

    • 解决个问题:NBU配置Storage时的目录在系统分区上,导致备份失败,最终原因是目录在系统分区上时,需要在 This directory can exist on the root file system or system disk. 这个选项前打上勾。

      2012-09-26 22:21

    • More»

    blog sort

    links

    record

    banner

    Informix插入记录的过程(insert row)

    暗夜星空's Memory from Jan 1 , 2016 at 20:39 PM , under Category:INFORMIX教程
    数据库版本:12.10.FC6X5
    操作系统:RHEL 6U4 64bit
    目的:通过onlog命令熟悉插入记录时的数据库内部操作过程

    之前的创建表的语句:
    create table ttt
    (
      col1 integer,
      col2 char(40),
      col3 varchar(40),
      col4 text
    );
    create index ix_ttt on ttt(id);

    由于有text字段,需要通过load方式导入记录
    [informix@rhel6u4 temp]$ more ttt.unl 
    1|test001|test001|test001
    [informix@rhel6u4 temp]$ dbaccess testdb -
    
    Database selected.
    
    > load from ttt.unl insert into ttt;
    
    1 row(s) loaded.

    通过onlog -n <逻辑日志编号> 的输出,可知数据库内部需要完成如下操作:
    onlog_insert_row.png
    1、开始事务
    BEGIN(begin work):包含事务号、开始时间、用户;
    2、分配区段   -- 如果已经有空闲的页,不需要分配
    CHALLOC(Chunk extent allocation):分配第一个extent,在7:65(chunk num:num of page)开始分配8页;
    3、Partition页扩展
    PTEXTEND(Tblspace extend):在7:65页的基础上扩展7个页引成8个页;
    4、插入blob数据   -- 由于有text字段,故有该操作
    PBINSERT(Insert tblspace blobpage):插入text数据到tblspace blobpage中;
    5、插入普通数据
    HINSERT(Home row insert):往表ttt中插入数据;
    ADDITEM(Add item to index): 往ttt表的索引中增加相应的记录;
    6、完成操作,提交
    COMMIT(commit work): 包含提交时间。

    Post a comment:

    Your email address will not be published. Required fields are marked﹡