这里主要验证了number 和 varchar2 两种数据类型null值的存储先来介绍一下row piece的结构引用官方文档的一张结构图
通常情况下,不包括(cluster table 和 chain row)一个rowpiece 包括row header 和 column data 关于其他情况,会在以后的研究中陆续放出。BBED> dump /v
File: /u01/apps/Oracle/oradata/david/users01.dbf(4)
Block: 531 Offsets: 8173to 8191 Dba:0x01000213
-------------------------------------------------------
3c020302 c1020353 59530444 55414c01 l<...á..SYS.DUAL.
06fbd4 l .??
<16 bytes per line>例如:一个rowpiece的前3个字节 3c0203它表示1个字节的flag
1个字节的lb(itl slot)
1个字节的columncount如例中
3c=flag=00111100=--HDFL--=header+delete+first+last
02=lb itl slot 0x02
03=column count
列值信息包括:
列的长度,列的value
例如02c102
表示占用2个byte
c102 表示的是具体的值dump 的信息 可以使用 UTL_RAW.CAST_TO_xxxx 来翻译(感谢itpub
iori809的指导)
下面开始验证首先环境为11.1.0.6 linux x64
- dex@FAKE> desc ts
- Name Null? Type
- ----------------------------------------------------------------- -------- --------------------------------------------
- ID NUMBER
- NAME VARCHAR2(20)
- COUNT NUMBER
-
-
- dex@FAKE> select t.*,
- 2 dbms_rowid.rowid_relative_fno(t.rowid) as "FNO#",
- 3 dbms_rowid.rowid_block_number(t.rowid) as "BLK#",
- 4 dbms_rowid.rowid_row_number(t.rowid) as "ROW#"
- 5 from dex.ts t
- 6 ;
-
-
- ID NAME COUNT FNO# BLK# ROW#
- ---------- -------------------- ---------- ---------- ---------- ----------
- 1 dd 4 31 0
- 2 2 4 31 1
- 2 3 4 31 2
- 4 4 31 3
建表语句:dex@FAKE> create table ts ( id number , name varchar2(20) , count number ) ;
因为表中没有使用long 类型的column,所以表中列的顺序和建表中的列的声明顺序相同。
BBED> set dba 4,31
DBA 0x0100001f (16777247 4,31)
BBED> map
File: /u01/apps/oracle/oradata/fake/users01.dbf (4)
Block: 31 Dba:0x0100001f
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes @0
struct ktbbh, 72 bytes @20
struct kdbh, 14 bytes @100
struct kdbt[1], 4 bytes @114
sb2 kdbr[3] @118
ub1 freespace[8036] @124
ub1 rowdata[28] @8160
ub4 tailchk @8188
MySQL Cluster集群探索与实践在Oracle中利用SQL_TRACE跟踪SQL的执行相关资讯 Oracle Database
- Oracle Database and Instance简介 (09/26/2014 19:39:07)
- Oracle 中关于database的read only (09/07/2013 10:31:33)
- Oracle Database 中 B*Tree 索引内 (12/28/2012 08:18:10)
| - 单节点服务器安装Oracle Grid (05/12/2014 19:44:48)
- Linux/Unix 中如何配置 Oracle (03/28/2013 06:21:07)
|
本文评论 查看全部评论 (0)