1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)select tablespace_name,file_name,bytes/1024/1024 file_size,au
1、查看临时表空间 (dba_temp_files视图)(v_$tempfile视图)
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看
2、缩小临时表空间大小
alter database tempfile 'd:\oracle\product\10.2.0\oradata\telemt\temp01.dbf' resize 100m;
3、扩展临时表空间:
方法一、增大临时文件大小:
sql> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ resize 100m;
方法二、将临时数据文件设为自动扩展:
sql> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ autoextend on next 5m maxsize unlimited;
方法三、向临时表空间中添加数据文件:
sql> alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ size 100m;
4、创建临时表空间:
sql> create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11.dbf’ size 10m;
5、更改系统的默认临时表空间:
--查询默认临时表空间
select * from database_properties where property_name='default_temp_tablespace';
--修改默认临时表空间
alter database default temporary tablespace temp1;
所有用户的默认临时表空间都将切换为新的临时表空间:
select username,temporary_tablespace,default_ from dba_users;
--更改某一用户的临时表空间:
alter user scott temporary tablespace temp;
6、删除临时表空间
删除临时表空间的一个数据文件:
sql> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp02.dbf’ drop;
删除临时表空间(彻底删除):
sql> drop tablespace temp1 including contents and datafiles cascade constraints;
7、查看临时表空间的使用情况(gv_$temp_space_header视图必须在sys用户下才能查询)
gv_$temp_space_header视图记录了临时表空间的使用大小与未使用的大小
dba_temp_files视图的bytes字段记录的是临时表空间的总大小
select temp_used.tablespace_name,
total - used as free,
total as total,
round(nvl(total - used, 0) * 100 / total, 3) free percent
from (select tablespace_name, sum(bytes_used) / 1024 / 1024 used
from gv_$temp_space_header
group by tablespace_name) temp_used,
(select tablespace_name, sum(bytes) / 1024 / 1024 total
from dba_temp_files
group by tablespace_name) temp_total
where temp_used.tablespace_name = temp_total.tablespace_name
8、查找消耗资源比较的sql语句
select se.username,
se.sid,
su.extents,
su.blocks * to_number(rtrim(p.value)) as space,
tablespace,
segtype,
sql_text
from v$sort_usage su, v$parameter p, v$session se, v$sql s
where p.name = 'db_block_size'
and su.session_addr = se.saddr
and s.hash_value = su.sqlhash
and s.address = su.sqladdr
order by se.username, se.sid
9、查看当前临时表空间使用大小与正在占用临时表空间的sql语句
select sess.sid, segtype, blocks * 8 / 1000 mb, sql_text
from v$sort_usage sort, v$session sess, v$sql sql
where sort.session_addr = sess.saddr
and sql.address = sess.sql_address
order by blocks desc;
10、临时表空间组介绍
1)创建临时表空间组:
create temporary tablespace tempts1 tempfile '/home/oracle/temp1_02.dbf' size 2m tablespace group group1;
create temporary tablespace tempts2 tempfile '/home/oracle/temp2_02.dbf' size 2m tablespace group group2;
2)查询临时表空间组:dba_tablespace_groups视图
select * from dba_tablespace_groups;
group_name tablespace_name
------------------------------ ------------------------------
group1 tempts1
group2 tempts2
3)将表空间从一个临时表空间组移动到另外一个临时表空间组:
alter tablespace tempts1 tablespace group group2 ;
select * from dba_tablespace_groups;
group_name tablespace_name
------------------------------ ------------------------------
group2 tempts1
group2 tempts2
4)把临时表空间组指定给用户
alter user scott temporary tablespace group2;
5)在数据库级设置临时表空间
alter database default temporary tablespace group2;
6)删除临时表空间组 (删除组成临时表空间组的所有临时表空间)
drop tablespace tempts1 including contents and datafiles;
select * from dba_tablespace_groups;
group_name tablespace_name
------------------------------ ------------------------------
group2 tempts2