zoukankan      html  css  js  c++  java
  • ORACLE--分区表数据清理

    由于分区表数据增加;没做清除操作;导致表空间告急。需要清理很久之前的数据;释放空间。步骤如下

    一,查看哪个表占的空间

    SELECT t.segment_name, SUM(t.bytes / 1024 / 1024)
      FROM user_segments t
     GROUP BY t.segment_name
     ORDER BY SUM(t.bytes / 1024 / 1024) DESC
    

    二、查看每个子分区的记录

    SELECT a.table_name,a.partition_name FROM user_tab_partitions  a WHERE a.table_name = 'TBL_SMSMT_AUTOACTIV_BILL_HIS';

    三、检查分区表的索引是否LOCAL类型
    --先查看该表的索引

    SELECT * FROM User_Indexes a WHERE a.table_name  = 'TBL_SMSMT_AUTOACTIV_BILL_HIS';
    

     --在查看索引是否为local类型;若不存在;则为全局索引

    select table_name,index_name,LOCALITY from user_part_indexes where table_name='TBL_SMSMT_AUTOACTIV_BILL_HIS' ;

    四、如果都是LOCAL索引,直接清除表分区数据(如果是全局索引,清除完成后需要重建)

         本地索引在你删除子分区表的时候会跟着删除;不会影响。

    ALTER TABLE TBL_SMSMT_AUTOACTIV_BILL_HIS DROP PARTITION P201305;
    ALTER TABLE TBL_SMSMT_AUTOACTIV_BILL_HIS DROP PARTITION P201306;
    ALTER TABLE TBL_SMSMT_AUTOACTIV_BILL_HIS DROP PARTITION P201307;
    ALTER TABLE TBL_SMSMT_AUTOACTIV_BILL_HIS DROP PARTITION P201308;
    ALTER TABLE TBL_SMSMT_AUTOACTIV_BILL_HIS DROP PARTITION P201309;
    ALTER TABLE TBL_SMSMT_AUTOACTIV_BILL_HIS DROP PARTITION P201310;
    
    ALTER INDEX SYS_C00105590 REBUILD;           
    ALTER INDEX I_TBL_SMSMT_AUTOACTIV_BILL_HIS REBUILD;        --其中SYS_C00105590,I_TBL_SMSMT_AUTOACTIV_BILL_HIS是全局索引
    

     五, 验证是否释放空间;(可忽略)

      再执行第一步;

  • 相关阅读:
    设计模式学习笔记-观察者模式(转)
    VC++ 遍历文件夹
    VC++文件监控 ReadDirectoryChangesW
    Windows Socket五种I/O模型——代码全攻略(转)
    CentOS 6 安装RabbitMQ
    nginx tomcat负载配置
    Centos6 Nginx安装
    windows 安装MongoDB服务
    跟导师请教后写出的关于C#导出Excel,不导出隐藏列的方法
    linux 常用命令(四)——(centos7-centos6.8)Vim安装
  • 原文地址:https://www.cnblogs.com/lottu/p/3954173.html
Copyright © 2011-2022 走看看