ORACLE官方文档说会重新使用原来已经分配的空间,本人测试如下:
SQL> create table scott.space_test as
2 select * from dba_objects;
SQL> SELECT TABLESPACE_NAME,SEGMENT_NAME,BYTES/1024,BLOCKS,EXTENTS FROM DBA_SEGMENTS WHERE SEGMENT_NAME='SPACE_TEST' AND OWNER='SCOTT';
TABLESPACE_NAME SEGMENT_NAME BYTES/1024 BLOCKS EXTENTS
--------------- --------------- ---------- ---------- ----------
USERS SPACE_TEST 9216 1152 24
SQL> delete from scott.space_test where object_id>=30000;
42383 rows deleted.
SQL> commit;
Commit complete.
SQL> SELECT TABLESPACE_NAME,SEGMENT_NAME,BYTES/1024,BLOCKS,EXTENTS FROM DBA_SEGMENTS WHERE SEGMENT_NAME='SPACE_TEST' AND OWNER='SCOTT';
TABLESPACE_NAME SEGMENT_NAME BYTES/1024 BLOCKS EXTENTS
--------------- --------------- ---------- ---------- ----------
USERS SPACE_TEST 9216 1152 24
SQL> insert into scott.space_test select * from dba_objects where object_id>=30000;
42383 rows created.
SQL> commit;
Commit complete.
SQL> SELECT TABLESPACE_NAME,SEGMENT_NAME,BYTES/1024,BLOCKS,EXTENTS FROM DBA_SEGMENTS WHERE SEGMENT_NAME='SPACE_TEST' AND OWNER='SCOTT';
TABLESPACE_NAME SEGMENT_NAME BYTES/1024 BLOCKS EXTENTS
--------------- --------------- ---------- ---------- ----------
USERS SPACE_TEST 9216 1152 24
测试结果也是会重新使用已经分配的空间。