WEB开发网
开发学院数据库Oracle Oracle数据块原理深入剖析 阅读

Oracle数据块原理深入剖析

 2009-03-07 13:11:02 来源:WEB开发网   
核心提示: 如果一行数据是普通行,这行数据能够存放在一个数据块中;如果一行数据是链接行,Oracle数据块原理深入剖析(3),这行数据存放在多个数据块中,行迁移(Row Migrating):数据块中存在一条记录,当块中已使用的空间的比例小于这个百分比的时候,这个块才被标识为有效状态,用户执行UPDA

Oracle数据块原理深入剖析 

如果一行数据是普通行,这行数据能够存放在一个数据块中;如果一行数据是链接行,这行数据存放在多个数据块中。

行迁移(Row Migrating):数据块中存在一条记录,用户执行UPDATE更新这条记录,这个UPDATE操作使这条记录变长,这时候,Oracle在这个数据块中进行查找,但是找不到能够容纳下这条记录的空间,无奈之下,Oracle只能把整行数据移到一个新的数据块。原来的数据块中保留一个“指针”,这个“指针”指向新的数据块。被移动的这条记录的ROWID保持不变。行迁移的原理如下图所示: 

Oracle数据块原理深入剖析 

无论是行链接还是行迁移,都会影响数据库的性能。Oracle在读取这样的记录的时候,Oracle会扫描多个数据块,执行更多的I/O。

块中自由空间的自动管理

Oracle使用位图(bitmap)来管理和跟踪数据块,这种块的空间管理方式叫“自动管理”。自动管理有下面的好处:

◆易于使用

◆更好地利用空间

◆可以对空间进行实时调整

块中自由空间的手动管理

用户可以通过PCTFREE, PCTUSED来调整块中空间的使用,这种管理方式叫手动管理。相对于自动管理,手动管理方式比较麻烦,不容易掌握,容易造成块中空间的浪费。

PCTFREE参数用于指定块中必须保留的最小空闲空间百分例。之所以要预留这样的空间,是因为UPDATE时,需要这些空间。如果UPDATE时,没有空余空间,Oracle就会分配一个新的块,这会产生行迁移(Row Migrating)。

PCTUSED也是用于设置一个百分比,当块中已使用的空间的比例小于这个百分比的时候,这个块才被标识为有效状态。只有有效的块才被允许插入数据。

上一页  1 2 3 

Tags:Oracle 数据 原理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接