Oracle表空间查询

表空间使用量

select a.tablespace_name,total,free,total-free used from 
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
   group by tablespace_name) a, 
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
   group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;

重建临时表空间

startup --启动数据库      
     
create temporary tablespace TEMP2 TEMPFILE '/home2/oracle/oradata/sysmon/temp02.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED; --创建中转临时表空间      
     
alter database default temporary tablespace temp2; --改变缺省临时表空间 为刚刚创建的新临时表空间temp2      
     
drop tablespace temp including contents and datafiles;--删除原来临时表空间      
     
create temporary tablespace TEMP TEMPFILE '/home2/oracle/oradata/sysmon/temp01.dbf' SIZE 512M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED; --重新创建临时表空间      
     
alter database default temporary tablespace temp; --重置缺省临时表空间为新建的temp表空间      
     
drop tablespace temp2 including contents and datafiles;--删除中转用临时表空间      
     
alter user roll temporary tablespace temp; --重新指定用户表空间为重建的临时表空间  
正常情况下,一个sql执行之后,返回结果后系统会自动收回分配给这个用户的空间。以便可以把此部分空间再分配给其他用户。
好了,既然问题出在临时表空间,那就查看一下临时表空间信息:
   select * from dba_tablespaces;
   select * from dba_temp_files;
   select * from v$tempfile

猜你喜欢

转载自cleaneyes.iteye.com/blog/1454213