oracle之数据块详解

数据块--结构
oracle数据块是oracle数据块中存储数据的最小单位。
oracle数据块分别由数据块头,表目录,行目录,空闲空间和行记录(已用空间)构成。(如下表)
oracle数据块大小:2k,4k,8(默认),16k(32位最大),32k(64位最大)
OLAP:可以把数据块设置地大些
OLTP:可以把数据块设置地小些,因为访问数据块时块头会产生事物。

1.数据块的存储属性
PCTFREE:数据块中数据量达到此值,将不允许继续出入数据
PCTUSED:当数据块中数据占用空间小于这个比例时,数据块会再次被使用。


因为ASSM,PCTUSED参数已经不怎么再用了
2.行链接和行迁移
  • 行链接
当插入一行时,oracle发现一个块容纳不这一个行,把该行劈成几块,放在几个数据块里,通过行链接连接起来。
  • 行迁移
当update一行,该块空间已经容纳不下该行,可是其他块可以,就把该行迁移到别的数据块,并在原来的位置留下地址指向新的数据块。
行链接和行迁移都有影响oracle的IO读写,所以可以通过以下方式减少行链接和行迁移:
  • 增大数据块,可以减少行链接
  • 设置合理的PCTFREE,可以减少行迁移
3.数据块空闲空间的合并
可以手工对数据块进行空闲空间合并,oracle在以下情况对空闲数据块进行合并:
  1. 当一个插入或者更新操作的行在一个数据块中有足够的空闲空间。
  2. 并且这个空闲空间时碎片状态,无法满足一行数据的使用。
oracle不总是自动整理碎片的原因是,这会导致一定的系统资源开销。
4.索引数据块的整理
alter index COALESCE--合并同一个branch的数据块
alter index REBULID--重建整个索引
数据块--结构--行
数据块--结构--行 --ROWID
rowid是oracle定位数据最快的方式,其他的方法都是快速找到rowid定位数据的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31386161/viewspace-2129584/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31386161/viewspace-2129584/

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值