关于informix的offset含义

在创建dbspace中,-o 参数指定的是chunk相对于设备的开始的offset,其单位是KB。
当-o 0 时,表示从设备的开始位置初始化设备;
当-o 不为0时,需要考虑-k 参数的影响:
当-k 不指定(使用默认值时),在onstat -d 的输出中,offset的显示的是页数(需-o的值除于页大小)
当-k 指定时,如页大小为2KB,-k指定为4,即页大小为8KB,此时在onstat -d的输出中,offset页的是基础页大小(默认大小)的页数(-o的值除于基础页大小)。
总的来说,offset只跟基础页大小相关!

对于页大小的统计,在一些系统表中也是使用基础页大小。谨记!

Informix删除记录的过程(delete row)

数据库版本:12.10.FC6X5
操作系统:RHEL 6U4 64bit
目的:通过onlog命令熟悉删除记录时的数据库内部操作过程

执行delete操作更新记录

[informix@rhel6u4 temp]$ dbaccess testdb -

Database selected.

> delete from ttt where col1 = 1;

1 row(s) deleted.

然后通过onlog -n <逻辑日志编号> 的输出,可知数据库内部需要完成如下操作:
请输入图片描述

1、开始事务
BEGIN(begin work):包含事务号、开始时间、用户;
2、从表中删除记录
HDELETE(Delete home row):
3、从blob页中删除text
PBDELETE(Delete tblspace blobpage):
4、从索引中删除记录
DELITEM(Delete item from index):
5、完成操作,提交
COMMIT(commit work): 包含提交时间。