查询表空间使用率
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";