如何降低Oracle表的高水位

如何降低Oracle表的高水位,第1张

1. 执行表重建指令 alter table table_name move(验证不可行,不降低水位线,但可释放表空间

当你创建了一个对象如表以后,不管你有没有插入数据,它都会占用一些块,ORACLE也会给它分配必要的空间.同样,用ALTER TABLE MOVE释放自由空间后,还是保留了一些空间给这个表.

ALTER TABLE ... MOVE 后面不跟参数也行,不跟参数表还是在原来的表空间,Move后记住重建索引.

查询失效索引语句:select index_name,table_name,tablespace_name,status From dba_indexes Where owner='HNUNICOM' And status<>'VALID'

重建索引语句:alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME

如果以后还要继续向这个表增加数据,没有必要move,只是释放出来的空间,只能这个表用,其他的表或者segment无法使用该空间。

2. 执行alter table table_name shrink space(已经验证成功,推荐使用,可释放数据库和磁盘空间空间,大表可同时降低表自身和表空间的高水位线,小表则只可以降低表自身的高水位线,原因不详)

注意,此命令为Oracle 10g新增功能,执行该指令之前必须允许行移动 alter table table_name enable row movement

3. 复制要保留的数据到临时表t,drop原表,然后rename临时表t为原表(未验证

4. 用EXP导出后,删除原表/表空间,之后用IMP重新导入(验证成功)

5. Alter table table_name deallocate unused(验证不可行,不降低水位线)

注:这证明,DEALLOCATE UNUSED为释放HWM上面的未使用空间,但是并不会释放HWM下面的自由空间,也不会移动HWM的位置.

6. 尽量使用truncate(验证不可行,不降低水位线,可释放数据库空间,但truncate后表默认空间大小为删除前的空间大小,如想释放计算机磁盘空间,需要用方法2压缩)

在MSSM的FREELIST下, 高水位High Water Mark代表所有相关块, 高水位以上就是未格式化unformatted 的数据块,INSRT数据时不能直接使用。当FREELIST中不包含可插入数据块时 HWM默认每次上升5个数据块。

对于ASSM管理的BITMAP 数据段而言,Oracle允许在数据段的中部出现unformatted blocks未格式化的数据块, 基于以下的原因:

一、在以前 HWM以下的数据块必然是formatted , 为了维护这一点代价是昂贵的:

长时间持有HW enqueue 队列锁对并发的抑制

过于频繁的持有HW enqueue在Oracle研发看来是罪恶的

上涨HWM 而不格式化 这样的话更有效率,因为格式化往往涉及到 IO,是一种较慢的 *** 作

二、 在直接路径加载过程中,最后的一个extent中的数据块将被全部format 格式化,而如果下一次还是direct load直接路径加载数据的话,它不会从Freelist上获取数据块,而是使用HWM以上新的数据盘区extent。 如果这个数据段是典型的一直在direct load加载数据的话,则可能在freelist上有很多unused block从来不被使用,而被浪费了。 这可能造成空间的浪费,尤其是在Extent size 很大的时候 或者 数据段几乎从来不传统路径插入数据的时候。保留这些数据块为unformatted则可以让加载数据时利用到这些空间空洞

如果自己搞不定可以找ASKMACLEAN专业ORACLE数据库修复团队成员帮您恢复!

高水位线的意思是oracle数据块历史使用空间的最高点,好处就是比如做全表扫描的话,有了高水位线,全表扫描只会扫描到水位线处,再向上就不会扫描了,因为根本没有数据,所以对oracle查询性能是有一定的帮助的,另外如果一个表做过大量的delete *** 作的话,需要定时shrink,因为delete不回收高水位,下次做全表扫描的时候还会扫描到高水位线,但其实高水位以下很多都是free的空间,会影响全表扫描的性能,这也是如果你想删除表中所有数据时最好用truncate的原因,因为truncate回收高水位。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6635479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存