数据块结构

数据块结构 - m15142436758 - 简单的博客 数据块结构 - m15142436758 - 简单的博客
 
    数据块头包括
* Block type
1=undo segment header, 2=undo segment block, 5=data segment header, 7=temporary table, 11=data file header, 14=Unlimited rollback segment header, 15=Unlimited deferred rollback segment header, 16=Unlimited data segment header, 17=Unlimited data segment header with FL groups, 18=Extent map block
* Block format
Is it an oracle 7 or oracle 8, (or 9, or 10???) formatted block?
* Relative database address
* SCN
* SCN sequence number
* Check value
Is used for integrity checking at the block level if db_block_checksum is set.
* Tail
The tail is not at the beginning of a block but at its end: it is used as a block consistency check. That is, the value must be equal to SCN + block type + SCN sequence number.
2 表目录
如果这个数据块中有某个表的行,则将记录这个表的信息
3 行目录
行的地址偏移(相当于指针)
每条记录占  2 字节(byte)空间

其他
1    、如果表中一行数据量太大会产生行链接,(生成一个指针指向其他包含相同行的数据的数据块,指针记录在行头的链接rowid中)

2     、当一个表超过 255 列时,每行第255列之后的数据将作为一个新的行片 断(row piece)存储在相同的数据块中,这被称为块内 链接( 当一个行为块内链接时,用户可 以从同一数据块中访问此行的全部数据。如果一个数据行位于同一数据 块内,那么访问此行不会影响 I/O 性能,因为访问此行不会带来额外的  I/O 开销

3     、列长存储 于列值之前,如列值不超过 250 字节,那么 Oracle 使用 1 字节存储 其列长;如列值超过 250 字节,则使用 3 字节存储其列长

4      、为了节约存储空间,如果某列值为空(null),那么数据库中只存储其 列长(column length)(值为 0),而不存储任何数据。对位于一行末 尾的空列值(trailing null column),数据库中将列长也忽略不予存 储(所以可能为null的列最好放在最后,这样可以节省空间)

段是如何管理数据块的
段管理方式
①ASSM:自动管理方式(BMB段:BitmapManagedSegments),使用位图管理段中的数据块空闲空间,大并发量。
②MSSM:手工管理方式(FreeList),使用空闲列表来管理段中的数据块空闲空间,串行操作容易引起段头的争用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值