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

  • 相关阅读:
    Nginx源码编译安装与负载均衡配置实践
    jquery_file_upload in Rails(ajax实现多张图片上传)
    Nokogiri相关网站
    rails中 url和path的区别
    Unique Paths
    Kinect for windows的脸部识别
    .Net给图片添加水印效果
    大型高性能ASP.NET系统架构设计
    如何来提高网站的访问速度,其中包括服务器的配置建议,asp.NET代码的编写及前端页面的优化等等
    URL中#号(井号)的作用
  • 原文地址:https://www.cnblogs.com/KAJIA1/p/12092010.html
Copyright © 2011-2022 走看看