SQL> @ver
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
SQL> exec dbms_space_admin.materialize_deferred_segments(schema_name => 'SCOTT',table_name => 'T');
PL/SQL procedure successfully completed.
select segment_name, segment_type, bytes, extents from dba_segments
where wner=user and segment_name in ('T','I_T_ID') or segment_name IN (SELECT segment_name FROM dba_lobs WHERE wner=user and table_name = 'T')
ORDER BY 1,2;
SEGMENT_NAME SEGMENT_TYPE BYTES EXTENTS
------------------------------ ------------------ ---------- ----------
I_T_ID INDEX 65536 1
SYS_LOB0000275118C00002$$ LOBSEGMENT 65536 1
T TABLE 65536 1
SQL> insert into t values (1,'x');
1 row created.
SQL> commit ;
Commit complete.
SQL> exec dbms_space_admin.DROP_EMPTY_SEGMENTS(schema_name => 'SCOTT',table_name => 'T');
PL/SQL procedure successfully completed.
select segment_name, segment_type, bytes, extents from dba_segments
where wner=user and segment_name in ('T','I_T_ID') or segment_name IN (SELECT segment_name FROM dba_lobs WHERE wner=user and table_name = 'T')
ORDER BY 1,2;
SEGMENT_NAME SEGMENT_TYPE BYTES EXTENTS
------------------------------ ------------------ ---------- ----------
I_T_ID INDEX 65536 1
SYS_LOB0000275118C00002$$ LOBSEGMENT 65536 1
T TABLE 65536 1--因为有数据存在,自然无法回收.
SQL> delete from t;
1 row deleted.
SQL> commit ;
Commit complete.
SQL> exec dbms_space_admin.DROP_EMPTY_SEGMENTS(schema_name => 'SCOTT',table_name => 'T');
PL/SQL procedure successfully completed.
select segment_name, segment_type, bytes, extents from dba_segments
where wner=user and segment_name in ('T','I_T_ID') or segment_name IN (SELECT segment_name FROM dba_lobs WHERE wner=user and table_name = 'T')
ORDER BY 1,2;
no rows selected
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-761922/ ,如需转载,请注明出处,否则将追究法律责任。