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 此时空间回收