Oracle高水位标志(high-water mark)相关概念

Oracle的高水位标志(HWM)是一个表明表中已使用过的最后一个块的标记,它在数据插入时会上移,删除数据时不变。HWM存储在表的段头中,全表扫描会读取到HWM以下的所有块。HWM不会因数据删除而下降,但可通过`ALTER TABLE MOVE`或`ALTER TABLE SHRINK SPACE`等操作来调整。在自动段空间管理(ASSM)中引入了低HWM,表示已被格式化的块。

Oracle 高水位标志 :    high-water mark

可以用以下几点对 high-water mark 进行理解

1. 指一个表中曾经被用过的最后一个块

2. 如果有数据被插入表, high-water mark 就移到到被使用的最后一个块

3. 如果有数据被删除, high-water mark 的位置不会变

4.high-water mark 被储存在表的段头 (segment header of the table)

5. 当对表执行全表扫描时, oracle server 被所有的块直到 high-water mark

oracle 的逻辑存储结构:表空间—— > 段—— > 区—— >

  块 : 是粒度最小的存储单位 , 现在标准的块大小是 8K,ORACLE 每一次 I/O 操作也是按块来操作的 , 也就是说当 ORACLE 从数据文件读数据时 , 是读取多少个块 , 而不是多少行 .

  区 : 由一系列相邻的块而组成 , 这也是 ORACLE 空间分配的基本单位 , 举个例子来说 , 当我们创建一个表 A , 首先 ORACLE 会分配一区的空间给这个表 , 随着不断的 INSERT 数据到 A, 原来的这个区容不下插入的数据时 ,ORACLE 是以区为单位进行扩展的 , 也就是说再分配多少个区给 A, 而不是多少个块 .

  段 : 是由一系列的区所组成 , 一般来说 , 当创建一个对象时 ( , 索引 ), 就会分配一个段给这个对象 . 所以从某种意义上来说 , 段就是某种特定的数据 . CREATE TABLE PM_USER, 这个段就是数据段 , CREATE INDEX ON PM_USER(NAME),ORACLE 同样会分配一个段给这个索引 , 但这是一个索引段了 . 查询段的信息可以通过数据字典 : SELECT * FROM USER_SEGMENTS 来获得 ,

  表空间 : 包含段 , 区及块 . 表空间的数据物理上储存在其所在的数据文件中 . 一个数据库至少要有一个表空间 .

  所有的 oracle 段都有一个在段内容纳数据的上限,我们把这个上限称为 "high water mark"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值