高水位回收

用两种方法可以进行表的高水位回收
1.用shrink进行高水位回收(不需要重建索引,不需要额外空间)
alter table bydvmi.tpo enable row movement;
alter table bydvmi.tpo shrink space cascade;
alter table bydvmi.tpo disable row movement;
exec DBMS_STATS.GATHER_TABLE_STATS(ownname=>‘BYDVMI‘,tabname=>‘TPO‘,ESTIMATE_PERCENT=>30,method_opt=>‘for all columns size 1‘,cascade=>true,force=>true,degree=>4,no_invalidate=>FALSE);

2.用move进行高水位回收(需要重建索引,需要额外空间)
alter table wmou10tr move parallel 4;
查看索引、重建
select ‘alter index ‘||index_name||‘ rebuild parallel 4;‘ from user_indexes where table_name=upper(‘wmou10tr‘);
####执行返回值####
select ‘alter index ‘||index_name||‘ parallel 1;‘ from user_indexes where table_name=upper(‘wmou10tr‘);
####执行返回值####
exec DBMS_STATS.GATHER_TABLE_STATS(ownname=>‘BYDVMI‘,tabname=>‘TPO‘,ESTIMATE_PERCENT=>30,method_opt=>‘for all columns size 1‘,cascade=>true,force=>true,degree=>4,no_invalidate=>FALSE);

原文地址:https://www.cnblogs.com/rikinrei/p/10750878.html

时间: 2024-08-01 11:07:32

高水位回收的相关文章

Oracle 高水位(HWM)回收原理及操作方法

一.  高水位(HWM)及其产生原因 High Water Mark,HWM) 是Oracle(Segment)级别的概念.在仅有DML(比如delete,insert)操作时,高水位线只会增长,不会降低.具体来说,由于程序使用的delete语句不回收使用过的空间,数据虽然删除了,但是高水位线却没有降低,仍然处于之前的水位. 下图为一个Segment内高水位不断增长的示意图: 注:一个表在初次插入记录时,Oracle会为其分配Segment和block. 插入大量数据后,高水位线随之增长 当数据

Oracle move和shrink释放高水位空间 (一)

move 和shrink 的共同点 1.收缩段 2.消除部分行迁移 3.消除空间碎片 4.使数据更紧密 一.shrink 语法: alter table TABLE_NAME shrink space [compact|cascate] segment shrink执行的两个阶段: 1.数据重组(compact): 通过一系列insert.delete操作,将数据尽量排列在段的前面.在这个过程中需要在表上加RX锁,即只在需要移动的行上加锁. 由于涉及到rowid的改变,需要enable row

[Oracle]高水位标记(HWM)

(一)高水位标记(High Water Mark,HWM)的概念 所谓高水位标记,是指一个已经分配的段中,已经使用的空间与未使用的空间的分界线.在表的使用过程中,随着数据的不断增多(insert),HWM不断向数据段未使用部分方向移动,而在删除数据(delete)的过程中,HWM并不会向反方向移动,即使删除全部数据,HWM依然不会改变.但是如果使用了truncate命令,则表的HWM会被重置为0. 图1.segment (二)高水位标记的影响 全表扫描要读出直到HWM标记的所有的属于该表的数据块

oracle高水位

oracle高水位http://www.cnblogs.com/chuyuhuashi/p/3548260.htmlhttp://blog.csdn.net/wyzxg/article/details/5631721 数据表删除数据或者数据分区后,数据文件并没有减小.这是oracle数据库高数位high water mark造成的.尽管用delete删除了数据,数据已经不在数据块中,但是,原有的数据块并不会被回收回去,只是被标记为空闲可用的了.就是说空间只要被划分给了oracle,形式上就会被o

Oracle 高水位说明和释放表空间,加快表的查询速度

高水位的介绍 数据库运行了一段时间,经过一些列的删除.插入.更改操作有些表的高水位线就有可能和实际的表存储数据的情况相差特别多,为了提高检索该表的效率,建议对这些表进行收缩: 查找高水位线的表 查找表需要的存储空间:表以数据块的形式存储在数据文件中,表的存储结构是:行×行数,如果知道了总共有多少行,每行的平均长度,两者相乘,再除于90%的使用率,那么就可以知道实际需要存储的空间: 表的存储结构; 从统计信息得出平均每行的长度和总共的行数,从而知道存储的SIZE: 查找表实际存储的空间:数据实际存

Oracle 高水位问题

Oracle 对数据段的管理有一个高水位(HWM, High Water Mark)的概念.高水位是数据段中使用过和未使用过的数据块的分界线.高水位以下的数据块是曾使用过的,以上的是从未被使用或初始化过的. 当 Oracle 进行全表扫描(FTS, Full table scan)的操作时,它会读高水位下的所有数据块.如果高水位下还有很多空闲空间(碎片),读取这些空闲数据块会降低操作的性能. 当针对一个表的删除操作很多时,表会产生大量碎片.删除操作释放的空间不会被插入操作立即重用,甚至永远也不会

oralce move和shrink释放高水位

转自:https://blog.51cto.com/fengfeng688/1955137 move和shrink的共同点: 收缩段,消除部分行迁移,消除空间碎片,使数据更紧密 shrink用法: 语法: alter table TABLE_NAME shrink space [compact|cascades] shrink分为以下两个阶段: 1.数据重组(compact) 通过一系列的insert,delete操作,将数据尽量排列在段的前面.在这个过程中,需要在表上面加RX锁,即只在需要移动

MOVE降低高水位 HWM

--创建实验表空间SQL> create tablespace andy03 datafile '/home/oracle/app/oradata/orcl/andy03.dbf'  size 10M autoextend on next 30M; --创建实验数据SQL> create table andy03 tablespace andy03  as select * from dba_objects ; SQL> insert into   andy03   select * f

探究 Oracle 高水位对数据库性能影响

2016-08-11 陈龙 恩墨学院 探究 Oracle 高水位对数据库性能影响1大家好!我是来自云和恩墨的陈龙,目前主要负责Oracle技术支持工作.在我开始学习Oracle 的时候就听eygle老师说过,要想学好技术,一定要要多做实验,多做学习记录,理论与实践相结合,才能真正理解吸收那些知识,所以今天我想分享一下对Oracle高水位线与SQL访问性能相关性的研究体会.谈不上很深入的研究,只是想与大家分享我的Oracle学习过程,希望能与大家交流进步.之所以分享这个学习内容,是因为在我曾经经历