zoukankan      html  css  js  c++  java
  • 回收带Lob字段表占用的空间

    SQL> select object_name from user_objects;
    
    no rows selected
    
    SQL> select segment_name from user_segments;
    
    no rows selected
    
    SQL> create table test1 as select * from ecds.MSG_MESSAGELOG;
    
    Table created.
    
    SQL> select segment_name,segment_type from user_segments;
    
    SEGMENT_NAME									  SEGMENT_TYPE
    --------------------------------------------------------------------------------- ------------------
    TEST1										  TABLE
    SYS_IL0000324358C00006$$							  LOBINDEX
    SYS_LOB0000324358C00006$$							  LOBSEGMENT
    
    SQL> desc test1
     Name														   Null?    Type
     ----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
     ID														   NOT NULL VARCHAR2(50)
     M_MESGTYPE														    VARCHAR2(20)
     M_MESGSTATE														    VARCHAR2(100)
     M_OPERATEDATE														    TIMESTAMP(6)
     M_SUCCESSFULDATE													    TIMESTAMP(6)
     M_MESGCONTENT														    CLOB
     M_SENDORRECEIVE													    VARCHAR2(100)
     M_REPEATTIMES														    NUMBER(38)
     M_WORKDATE														    DATE
     M_ORIGSENDER														    VARCHAR2(100)
     M_ORIGSENDDATE 													    DATE
     M_MESGID														    VARCHAR2(100)
     M_FK_MESSAGESAVETIMEID 												    VARCHAR2(100)
     M_MSGTABLEID														    VARCHAR2(100)
     M_CREDTTM														    TIMESTAMP(6)
     M_ACCTSVCR														    VARCHAR2(100)
     M_MSGID4SUM														    VARCHAR2(100)
     M_ACCPTRSVCR														    VARCHAR2(100)
    
    SQL> select min(m_origsenddate),max(m_origsenddate) from test1;
    
    MIN(M_ORIGSE MAX(M_ORIGSE
    ------------ ------------
    25-JUN-10    20-OCT-13
    
    SQL> select count(*) from test1 a 
      2  where a.m_origsenddate >= date'2011-12-31';
    
      COUNT(*)
    ----------
        679430
    
    SQL> select count(*) from test1 a;
    
      COUNT(*)
    ----------
       1004647
    SQL> select segment_name,bytes/1024/1024 from user_segments;
    
    SEGMENT_NAME									  BYTES/1024/1024
    --------------------------------------------------------------------------------- ---------------
    TEST1											     1088
    SYS_IL0000324358C00006$$								    .1875
    SYS_LOB0000324358C00006$$								     4464
    
    
    SQL> delete from test1 a where a.m_origsenddate >= date'2011-12-31';
    
    679430 rows deleted.
    
    SQL> commit;
    
    Commit complete.
    
    ----------------------------------------------------------------------------------------------------
    SQL> select segment_name,bytes/1024/1024 from user_segments;
    
    SEGMENT_NAME									  BYTES/1024/1024
    --------------------------------------------------------------------------------- ---------------
    TEST1											     1088
    SYS_IL0000324358C00006$$								       29
    SYS_LOB0000324358C00006$$								     4464
    
    SQL> alter table test1 move;
    
    Table altered.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select segment_name,bytes/1024/1024 from user_segments;
    
    SEGMENT_NAME									  BYTES/1024/1024
    --------------------------------------------------------------------------------- ---------------
    TEST1											      360
    SYS_IL0000324358C00006$$								       29
    SYS_LOB0000324358C00006$$								     4464
    
    
    SQL> select segment_name,bytes/1024/1024,segment_type from user_segments;
    
    SEGMENT_NAME									  BYTES/1024/1024 SEGMENT_TYPE
    --------------------------------------------------------------------------------- --------------- ------------------
    TEST1											      360 TABLE
    SYS_IL0000324358C00006$$								       29 LOBINDEX
    SYS_LOB0000324358C00006$$								     4464 LOBSEGMENT
    
    一个Lob字段会自动创建索引
    
    SQL>  alter table test1 modify lob(M_MESGCONTENT) (shrink space);
    
    Table altered.
    
    SQL> select segment_name,bytes/1024/1024,segment_type from user_segments;
    
    SEGMENT_NAME									  BYTES/1024/1024 SEGMENT_TYPE
    --------------------------------------------------------------------------------- --------------- ------------------
    TEST1											      360 TABLE
    SYS_IL0000324358C00006$$								       29 LOBINDEX
    SYS_LOB0000324358C00006$$								1348.6875 LOBSEGMENT
    
    此时空间回收

  • 相关阅读:
    正则表达式把所有Paul替换成Ringo:Paul Puala Pualine paul Paul
    DOM 和 BOM
    新手的grid布局
    css中的单位和css中的颜色表示方法
    css定位
    Winform 通过 WebBrowser 与 JS 交互
    PDF目录编辑器使用介绍
    [.NET] 控制只启动单个指定外部程序
    搭建 Frp 来远程内网 Windows 和 Linux 机子
    CentOs8 nmcli命令行方式操作网卡配置
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352274.html
Copyright © 2011-2022 走看看