查询表空间使用率

SELECT a.tablespace_name                        "表空间名",
       total                                    "表空间大小",
       free                                     "表空间剩余大小",
       ( total - free )                         "表空间使用大小",
       Round(( total - free ) / total, 4) * 100 "使用率   %"
FROM   (SELECT tablespace_name,
               Sum(bytes/(1024*1024)) free
        FROM   DBA_FREE_SPACE
        GROUP  BY tablespace_name) a,
       (SELECT tablespace_name,
               Sum(bytes/(1024*1024)) total
        FROM   DBA_DATA_FILES
        GROUP  BY tablespace_name) b
WHERE  a.tablespace_name = b.tablespace_name;

查询表空间对应地址

select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;
//方案一:修改表空间大小(可改为想要的数值,但是表空间文件不得超过32G)
alter database datafile '要修改的数据文件地址' resize 32000m;
//方案二:新增数据文件
ALTER TABLESPACE 表空间名(例如USERS)
ADD DATAFILE '新的数据文件路径'
SIZE 500M
AUTOEXTEND
ON NEXT 1M
MAXSIZE UNLIMITED;

 处理审计表(system表空间过大)

--http://www.itpub.net/thread-1342650-1-1.html

Oracle中有两种含义的表大小
一种是分配给一个表的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数:
select segment_name, bytes 
from user_segments 
where segment_type =‘TABLE’;

truncate table "AUD$"; truncate table "SCHEDULER$_JOB_RUN_DETAILS"; truncate table "SCHEDULER$_EVENT_LOG";

 

 
 
posted on 2018-10-17 10:41  许一朵岁月  阅读(2452)  评论(0编辑  收藏  举报