oracle数据库高水位查询,oracle数据库高水位线问题处理

Oracle数据库中的高水位线(HWM)是表段空间的一个标记,表示已分配但未使用的块。HWM只会增大,不会减少,即使删除所有数据。全表扫描会读取到HWM,导致效率降低。高水位线增大的原因包括大量数据删除、使用APPEND插入等。解决方法包括TRUNCATE TABLE、MOVE、SHRINK SPACE等。在线表重定义是另一种选择,但操作复杂。收缩表空间的具体步骤包括启用行移动、整理数据和重置高水位线。
摘要由CSDN通过智能技术生成

1、什么是高水线(High Water Mark)?数据库

Oracle 数据库在建立一张表时,会为这张表分配一个段空间(segment),为了方便理解,把段空间容纳数据的上限,称之为高水位线(HIGH WATER MARK) HWM ,HWM是一个标记,用来讲明表示有多少未使用的块分配给这个段。

两个结论:

1.水位线以上表示已经分配但还未使用块(block),水位先如下爱表示已经分配且已经使用过的块(包含了正在使用的块和使用过的且被删除了数据的空块)

2.理论上来讲,一张表的水位线只会增大不会减少(除非经过特殊的方法重置),即便将表中的数据所有删除,HWM仍是为原值。oracle

2、HWM数据库的操做有以下影响:app

a) 全表扫描一般要读出直到HWM标记的全部的属于该表数据库块,即便该表中没有任何数据。spa

b) 即便HWM如下有空闲的数据库块,键入在插入数据时使用了append关键字,HWM也会不断增大,占用系统资源,表所占的实际空间会不断增大,致使系统出现问题索引

3、高水位线缘由以及解决方法:资源

产生缘由:

1.操做表时使用删除了大量数据。

2.在插入时使用了/append nologging/语句,append关键字会从为表分配段中的随机位置插入,水位线会不断增高。

3.Sql load 时默认使用truncate 自带了reuse storage参数,致使truncate之后水位线不会下降。同步

解决方法:

1.直接truncate table drop storage

2.创建一张维护表按期move并重建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值