ORACLE表数据清理时空间的释放
(2018-01-31 09:08:43)
标签:
it |
分类: ORACLE |
一.原表大小
SQL> SELECT segment_name AS TABLENAME,BYTES B,BYTES/1024 KB,BYTES/1024/1024 MB FROM user_segments where segment_name ='HSC_CDR1710';
TABLENAME
B
KB
MB
----------------------------------- ---------- ---------- ----------
HSC_CDR1710
276824064
270336
264
二.TRUNCATE 后实际占用空间未变
SQL> truncate table HSC_CDR1710;
Table truncated.
SQL> SELECT segment_name AS TABLENAME,BYTES B,BYTES/1024 KB,BYTES/1024/1024 MB FROM user_segments where segment_name ='HSC_CDR1710';
TABLENAME
B
KB
MB
----------------------------------- ---------- ---------- ----------
HSC_CDR1710
276824064
270336
264
三.用DROP storage也未变化
SQL> truncate table HSC_CDR1710 DROP storage;
Table truncated.
SQL> SELECT segment_name AS TABLENAME,BYTES B,BYTES/1024 KB,BYTES/1024/1024 MB FROM user_segments where segment_name ='HSC_CDR1710';
TABLENAME
B
KB
MB
----------------------------------- ---------- ---------- ----------
HSC_CDR1710
276824064
270336
264
四.下面这个办法空间减少了.
SQL> alter table HSC_CDR1710
deallocate UNUSED KEEP
0;
Table altered.
SQL> SELECT segment_name AS TABLENAME,BYTES B,BYTES/1024 KB,BYTES/1024/1024 MB FROM user_segments where segment_name ='HSC_CDR1710';
TABLENAME
SQL> SELECT segment_name AS TABLENAME,BYTES B,BYTES/1024 KB,BYTES/1024/1024 MB FROM user_segments where segment_name ='HSC_CDR1710';
TABLENAME
----------------------------------- ---------- ---------- ----------
HSC_CDR1710
二.TRUNCATE 后实际占用空间未变
SQL> truncate table HSC_CDR1710;
Table truncated.
SQL> SELECT segment_name AS TABLENAME,BYTES B,BYTES/1024 KB,BYTES/1024/1024 MB FROM user_segments where segment_name ='HSC_CDR1710';
TABLENAME
----------------------------------- ---------- ---------- ----------
HSC_CDR1710
三.用DROP storage也未变化
SQL> truncate table HSC_CDR1710 DROP storage;
Table truncated.
SQL> SELECT segment_name AS TABLENAME,BYTES B,BYTES/1024 KB,BYTES/1024/1024 MB FROM user_segments where segment_name ='HSC_CDR1710';
TABLENAME
----------------------------------- ---------- ---------- ----------
HSC_CDR1710
四.下面这个办法空间减少了.
SQL> alter table HSC_CDR1710
Table altered.
SQL> SELECT segment_name AS TABLENAME,BYTES B,BYTES/1024 KB,BYTES/1024/1024 MB FROM user_segments where segment_name ='HSC_CDR1710';
TABLENAME