zoukankan      html  css  js  c++  java
  • Oracle-11g 回缩表高水位

    回缩表高水位的意义:

    所有的 Oracle 段都有一个在段内容纳数据的上线,即高水位线(high water mark)。HWM 是一个标记,很像水库的丽水最高水位,即使表内数据全部删除,HWM 也还是为原值。也就是说,这条高水位线在日常的增删操作中只会上涨,不会下跌。
     
    回缩表高水位方法:
    1.SHRINK 方法
    该方式可在线执行,原理参见《Oracle-11g 中 SHRINK 详解》,步骤如下。
    (1).检查对象所在表空间是否为 ASSM 模式
    SQL> SELECT tablespace_name, segment_space_management
    FROM dba_tablespaces;
    (2).启用表的行移动功能
    SQL> ALTER TABLE table_name ENABLE ROW MOVEMENT;
    其中,table_name 代表回缩表名。
    (3).压缩并反碎片化表
    SQL> ALTER TABLE table_name SHRINK SPACE COMPACT;
    其中,table_name 代表回缩表名。注意:使用 COMPACT 子句,可以在对系统影响较小的情况下,先进行数据移动压缩。
    (4).待业务非高峰期,回缩表高水位
    SQL> ALTER TABLE table_name SHRINK SPACE;
    其中,table_name 代表回缩表名。
    (5).禁用表的行移动功能(可选)
    SQL> ALTER TABLE table_name DISABLE ROW MOVEMENT;
    其中,table_name 代表回缩表名。
    (6).更新表统计信息
    2.MOVE 方法
    MOVE 的方法不可在线执行。
    (1).移动表
    SQL> ALTER TABLE table_name MOVE;
    注意:MOVE 后不带表空间,将在原表空间移动表。
    (2).查询失效索引
    SQL> SELECT index_name,table_name,tablespace_name,status 
    FROM dba_indexes 
    WHERE owner='&table_owner
    AND table_name='&table_name
    AND status<>'VALID';
    其中,table_owner 代表表所属用户,table_name 代表回缩表名。
    (3).重建索引
    SQL> ALTER INDEX index_name REBUILD;
    其中,index_name 为索引名称。
    (4).验证重建情况
    SQL> SELECT index_name,table_name,tablespace_name,status 
    FROM dba_indexes 
    WHERE owner='&table_owner
    AND table_name='&table_name
    AND status<>'VALID';
    (5).更新表统计信息
    其中,table_owner 代表表所属用户,table_name 代表回缩表名。
    3.TRUNCATE 方法
    TRUNCATE 方法不可在线执行,且不适合大数据量的执行(数据会插)。
    (1).创建保存数据的临时表
    SQL> CREATE TABLE table_temp_name AS SELECT * FROM table_name;
    其中,table_temp_name 代表临时表名,table_name 代表回缩表名。
    (2).截断表
    SQL> TRUNCATE TABLE table_name;
    其中,table_name 代表回缩表名。
    (3).会插数据
    SQL> INSERT INTO table_name SELECT * FROM table_temp_name;
    其中,table_temp_name 代表临时表名,table_name 代表回缩表名。
    (4).更新表统计信息
  • 相关阅读:
    Understanding identities in IIS
    Name your feature branches by convention
    Branch policies on Azure Repos
    Use Git Credential Managers to Authenticate to Azure Repos
    How do I force my .NET application to run as administrator?
    UML的类型
    ASP.NET Error Handling
    通过泛型,将string转换为指定类型
    Spring Session + Redis实现分布式Session共享
    MongoDB中的数据导出为excel CSV 文件
  • 原文地址:https://www.cnblogs.com/autopenguin/p/7059032.html
Copyright © 2011-2022 走看看