查詢表空間使用率html
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;
查詢表空間對應地址sql
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表空間過大)spa
--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";