首先申明:这是转帖的
1:表空间大小 select tablespace_name,count(*),sum(blocks),sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; 2:表空间使用情况 select df.tablespace_name "表空间名",totalspace "总空间M",freespace "剩余空间M",round((1-freespace/totalspace)*100,2) "使用率%" from (select tablespace_name,round(sum(bytes)/1024/1024) totalspace from dba_data_files group by tablespace_name) df, (select tablespace_name,round(sum(bytes)/1024/1024) freespace from dba_free_space group by tablespace_name) fs where df.tablespace_name=fs.tablespace_name; 3:删除表空间 --select t.name,d.name from v$tablespace t,v$datafile d where t.name='DATA_HOST_A' and t.ts#=d.ts#; --alter tablespace DATA_HOST_A offline; --drop tablespace DATA_HOST_A including contents; 4:为这个表空间增加一个数据文件 --SQL> alter tablespace 表空间名 add datafile '/u1/oradata/userdata_002.ora' size 50m; --Unix中 --SQL> alter tablespace 表空间名 add datafile 'c:/oradata/userdata_002.ora' size 50m; --Windows NT中 5:重新调整数据文件的大小 --SQL> alter database datafile '/u1/oradata/userdata_001.ora' resize 50M; --Unix中 --SQL> alter database datafile 'c:/oradata/userdata_002.ora' resize 50M; --Windows NT中 6:查看数据库的大小,和空间使用情况 col tablespace format a20 select b.file_id 文件ID, b.tablespace_name 表空间, b.file_name 物理文件名, b.bytes 总字节数, (b.bytes-sum(nvl(a.bytes,0))) 已使用, sum(nvl(a.bytes,0)) 剩余, sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比 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.file_id,b.bytes order by b.tablespace_name / dba_free_space --表空间剩余空间状况 dba_data_files --数据文件空间占用情况