zoukankan      html  css  js  c++  java
  • 降低高水位线的方法

    降低高水位线有多种方法,这里列出较常用的几种:

    1、expdp/impdp
    先将表导出,这时对数据行进行了整理去除了空闲空间,高水位线也到了新的位置
    再将导出的表导入

    2、手动临时表
    就是网络上说的CTAS方法create table ... as select ...

    创建临时表保存数据
      create table temptable as select * from table_name;

    临时表完成后又有两个办法继续


    a、
    彻底删除原表
      drop table table_name pruge;
    重名名临时表为原表名
      alter table temptable rename to table_name;


    b、
    清空主表
      truncate table table_name;
    重新导回数据
      insert into table_name select * from temptable;
    丢掉临时表
      drop table temptable;

    3、使用move


      alter table move tab_name;  在当前表空间中move
      alter table move tab_name tablespace tbs_name;  将其move到其他表空间
      move会锁表应该避免在业务高峰期操作
      还会影响index,完成后需要重建索引
      重建索引的命令ALTER INDEX INDEX_NAME REBUILD; INDEX_NAME是原表的索引名,需要自己查找
      move过程中需要考虑空间问题,因为过程中它相当于在表空间中又建了一个一样大小的表

    4、shrink收缩
      为Oracle 10g新增功能
      alter table tab_name enable row movement;
      alter table tab_name shrink space;
      这个命令不需要额外的空间分配,只在原表内部进行,所以首先要使行row可以移动movement,就是需要先使行可迁移。
      只能用在自动段空间管理的段,完成后不需要再重构索引

    5、truncate
      采用TRUNCATE语句删除一个表的数据的时候,类似于重新建立了表,不仅把数据都删除了,还把HWM给清空恢复为0。

    在表中有数据要保留的情况下不能使用truncate,
    其它方法都是对表进行重新的整理,和系统的磁盘碎片整理相似
    第1、2种方法为手动操作,步骤较多,但操作起来比较安定
    第3、4种较自动但有很多限制而且整个过程不能控制都由实例自动完成

    参考博客:https://blog.csdn.net/xinzhan0/article/details/61422658

  • 相关阅读:
    [HNOI2008]玩具装箱toy(dp+斜率优化)
    hdu 4597 Play Game(记忆化搜索)
    下载文件,ie文件名称乱码问题
    HDU 2138 How many prime numbers
    Codeforces Round #277 (Div. 2)---A. Calculating Function (规律)
    MapReduce-MulitipleOutputs实现自己定义输出到多个文件夹
    EFM8单片机与I2C外设通信
    linux杂谈(十一):LDAPserver的搭建
    Redis命令学习-string类型操作
    Java 实现单链表反序
  • 原文地址:https://www.cnblogs.com/KAJIA1/p/12092010.html
Copyright © 2011-2022 走看看