日期:2014-05-16  浏览次数:20467 次

ORACLE 表空间相关[补充中]
一.查询表空间信息
SELECT B.FILE_NAME 物理文件名称,
        B.TABLESPACE_NAME 表空间名称,
        B.BYTES/1024/1024 容量M,
       (B.BYTES - SUM(NVL(A.BYTES,0)))/1024/1024 已使用M,
        SUBSTR((B.BYTES - SUM(NVL(A.BYTES,0)))/(B.BYTES) * 100,1,5) 利用率 
 FROM DBA_FREE_SPACE A,DBA_DATA_FILES B 
 WHERE A.FILE_ID = B.FILE_ID
 GROUP BY B.TABLESPACE_NAME,B.FILE_NAME,B.BYTES 
 ORDER BY B.TABLESPACE_NAME



二.释放表空间
1.删除该表空间下部分表的数据
--删除分区表的表分区,释放表空间
ALTER TABLE REPORT.TABLE1 DROP PARTITION PARTITION1;
--或者清除表分区数据
ALTER TABLE REPORT.TABLE1 TRUNCATE PARTITION PARTITION1; 

注意: DELETE 掉数据并不能真正释放出表空间。必须TRUNCATE。具体可以度娘下DELETE和TRUNCATE的区别。