ORACLE高水位(HWM)是什么意思

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORACLE⾼⽔位(HWM)是什么意思
在Oracle数据的存储中,可以把存储空间想象为⼀个⽔库,数据想象为⽔库中的⽔。

⽔库中的⽔的位置有⼀条线叫做⽔位线,在Oracle中,这条线被称为⾼⽔位线(High-warter mark, HWM)。

在数据库表刚建⽴的时候,由于没有任何数据,所以这个时候⽔位线是空的,也就是说HWM为最低值。

当插⼊了数据以后,⾼⽔位线就会上涨,但是这⾥也有⼀个特性,就是如果你采⽤delete语句删除数据的话,数据虽然被删除了,但是⾼⽔位线却没有降低,还是你刚才删除数据以前那么⾼的⽔位。

也就是说,这条⾼⽔位线在⽇常的增删操作中只会上涨,不会下跌。

也就是说,⾼⽔位线不会因为 DELETE 操作⽽降低。

⾼⽔位并不会下降,随之导致的是全表扫描的实际开销并没有任何减少。

delete数据是没⽤的,即使数据删除了,⾼⽔位的值也不会下降。

释放表的⾼⽔位通常有如下⼏种办法:
(1)对表进⾏MOVE操作:ALTER TABLE TABLE_NAME MOVE;。

若表上存在索引,则记得重建索引。

(2)对表进⾏SHRINK SPACE操作:ALTER TABLE TABLE_NAME SHRINK SPACE;,注意,在执⾏该指令之前必须开启⾏移动:ALTER TABLE TABLE_NAME ENABLE ROW MOVEMENT;。

该⽅法的优点是:在碎⽚整理结束后,表上相关的索引仍然有效,缺点是会产⽣⼤量的UNDO和REDO。

(3)复制要保留的数据到临时表T,DROP原表,然后RENAME临时表T为原表。

(4)exp/imp或expdp/impdp重构表。

(5)若表中没有数据则直接使⽤TRUNCATE来释放⾼⽔位。

相关文档
最新文档