Oracle高水位线 HWM降低技巧

简介: Oracle高水位线 HWM降低技巧

什么是高水位线? 高水位线(high-water mark,HWM) 在数据库中,如果把表想象成从左到右依次排开的一系列块, 高水位线就是曾经包含了数据 的最右边的块。


3d3607f40b4f41559a8b24abcf2b7b43.png


1.概览


HWM 有利有弊,原则上 HWM 只会增大,即使将表中的数据全部删除,HWM 也不会降低。
优点:可以使 HWM 以下的块重复利用
缺点:使用全表扫描时要读取 HWM 以下的所有 block,耗费更多的 IO 资源。


2.如何降低 HWM 高水位线


多种方法可以降低 HWM:
移动表
收缩表
导入导出表
在线重定义表

3.收缩表 shrink


Shrink 方法,也叫段重组,表收缩的底层实现的是通过匹配的 INSERT 和 DELETE 操作

9137b6e8ae394f5fb7df07a9dea55bde.png

SYS@PROD> create table scott.t3 as select * from dba_objects;
SYS@PROD> select count(*) from scott.t3;
analyze table scott.t3 compute statistics;
select k.table_name,k.blocks,k.empty_blocks,num_rows from dba_tables k
where k.owner ='SCOTT'
and k.table_name ='T3'

ea27d1ae953c4fe0b9fc5300e2b8cbc0.png

SYS@PROD> delete from scott.t3 where rownum<4000;
analyze table scott.t3 compute statistics;
num_rows 已经减掉了 4000 条, 但 blocks 并没有减少, 说明 HWM 没有下降。

9081ef177b1f4d9ead8909d85b5b79f7.png

开启行迁移
SYS@PROD> alter table scott.t3 enable row movement;
--先压缩
alter table scott.t3 shrink space compact;
analyze table scott.t3 compute statistics for table;
--降低水位线
alter table scott.t3 shrink space;
--关闭行迁移
alter table scott.t3 disable row movement;

0a7aad33bd47491f88f6c10793bdccb1.png

目录
相关文章
|
存储 Oracle 关系型数据库
|
SQL Oracle 关系型数据库
|
Oracle 关系型数据库 数据库
Oracle 降低高水位线的方法
Oracle  降低高水位线的方法  高水位(HIGH WARTER MARK,HWM)好比水库中储水的水位,用于描述数据库中段的扩展方式。
1839 0
|
存储 Oracle 关系型数据库
|
存储 SQL Oracle
【转】Oracle Freelist和HWM原理及性能优化
文章转自:http://www.wzsky.net/html/Program/DataBase/74799.html 近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。
818 0
|
SQL 存储 Oracle
oracle点知识 ——HWM(高水位线) 上
在Oracle数据的存储中,可以把存储空间想象为一个水库,数据想象为水库中的水。水库中的水的位置有一条线叫做水位线,在Oracle中,这条线被称为高水位线(High-warter mark, HWM)。
1244 0
|
SQL 存储 Oracle
oracle点知识——HWM(高水位线) 下
1、何时应该降低 HWM table中包含两种空闲的block,在HWM之上的空闲block 和 在HWM之下的空闲block。 1、在HWM之上的空闲block : 运行analyze table后,在HWM之上的空心啊block会在user_table...
1128 0
|
存储 SQL Oracle
Oracle Freelist和HWM原理及性能优化
 近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。
751 0
|
16天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
56 7
|
1月前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
18 2