zoukankan      html  css  js  c++  java
  • 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锁,即只在需要移动的行上加锁。由于涉及到ROWID的改变,因此需要启动行迁移,同时disable基于rowid的trigger,这一过程对表的影响比较小。

    2.高水位(HWM)的调整

    此过程需要在表上加X锁,会造成表上的所有DML语句阻塞,在业务比较繁忙的系统上可能会产生较大的影响

    因此如果系统比较繁忙,可以先重组数据,再调整水位线

    /*打开行迁移*/
    alter table TABLE_NAME enable row movement;
    /*只整理碎片 不回收空间*/
    alter table TABLE_NAME shrink space compact; 
    /* 整理碎片并回收空间*/
    alter table TABLE_NAME shrink space;  
    /*整理碎片回收空间 并连同表的级联对象一起整理(比如索引)*/              
    alter table TABLE_NAME shrink space cascade;   
    /*分区表的整理*/ 
    alter table pt_table modify  PARTITION P1 shrink space cascade; 

    shrink的优点:

    可以在线执行

    可以使用参数cascade同步收缩索引等

    执行后不会导致索引失效

    可以避免alter table move过程中对表空间的占用

    move:

    语法:

    alter table table_name move tablespace new_tablespace;
    alter index index_name rebuild tablespace new_tablespace

    move的优点:

    可以修改表的初始storage参数,例如initial

    使用move的注意事项:

    表上面的索引需要重建,因为move后,rowid会发生变化,因此索引会失效

    move表是会对表锁定,而且是exclusive lock

    move时要保证新的表空间剩余量

    move和shrink的区别

    move后,表在表空间中的位置肯定会变,可能前移也可能后移,一般来说如果该表前面的表空间中有足够空间容纳该表,则前移,否则后移

    hrink后,表在表空间中的位置肯定不变,也就是表的段头位置不会发生变化

    Move会移动高水位,但不会释放申请的空间,是在高水位以下(below HWM)的操作

    shrink space 同样会移动高水位,但也会释放申请的空间,是在高水位上下(below and above HWM)都有的操作

    使用move时,会改变一些记录的ROWID,所以MOVE之后索引会变为无效,需要REBUILD

    使用shrink space时,索引会自动维护。如果在业务繁忙时做压缩,可以先shrink space compact,来压缩数据而不移动HWM,等到不繁忙的时候再shrink space来移动HWM

    shrink可以单独压缩索引,alter index xxx shrink space来压缩索引。另外、压缩表时指定Shrink space cascade会同时压缩索引

  • 相关阅读:
    7.21 高博教育 数组 内存
    【基础扎实】Python操作Excel三模块
    PAT 甲级 1012 The Best Rank
    PAT 甲级 1011  World Cup Betting
    PAT 甲级 1010 Radix
    链式线性表——实验及提升训练
    循环程序设计能力自测
    链表应用能力自测
    PAT 甲级 1009 Product of Polynomials
    1008 Elevator (20分)
  • 原文地址:https://www.cnblogs.com/monkey6/p/11172148.html
Copyright © 2011-2022 走看看