临时表空间

查看表空间使用:select USERNAME,TABLESPACE,BLOCKS from v$sort_usage where USERNAME='SCOTT';

临时表空间使用:临时表  oracle排序的中间数据

临时表创建:

1.事务级临时表:事务结束,数据消失

create global tempoary table temp as select * from t_user;

2.会话级临时表:会话结束,数据消失

create global tempoary table temp2 on commit preserve rows as select * from t_user;

oracle排序的中间数据(临时表):当排序数据多,pga不足时会创建临时表存储排序的中间数据

使中间表数据产生:

查看pga:show parameter pga

查看内存:show parameter memory

修改内存大小:alter system set memory_target=0;

修改pga空间:alter system set pga_agreegate_target=10m;

临时表空间路径:

select name from v$tempfile;

select file_name from dba_temp_files;

临时表空间文件删除后,数据库启动时会自动创建一个新的文件

创建临时表空间:create tempoary tablespace temp02 tempfile '/u01/app/oracle/oradata/myorcl/temp02.dbf' size 20m;

查看默认的临时表空间:

select * from database_properties where rownum<4;

select tempoary_tablespace from dba_users where username='SCOTT';

修改数据库默认临时表空间:alter database default tempoary tablespace temp02;

修改临时表空间名称:alter tablespace temp rename to temp01;

临时表空间组:oracle10之后新增的,多个用户排序时,分散到不同的临时表空间,解决IO瓶颈;临时表空间组无法显式创建,只能通过将临时表空间移动到临时表空间组的形式,由oracle自动创建。(只有临时表空间有组的概念,其他表空间没有)

查看临时表空间组:select * from dba_tablespace_groups;

将表空间移动到组中:

alter tablespace temp01 tablespace group tempgroup;

alter tablespace temp02 tablespace group tempgroup;

用户临时表空间使用组:alter user scott tempoary tablespace TEMPGROUP;

修改临时表空间文件大小:alter database tempfile '/u01/app/oracle/oradata/myorcl/temp02.dbf' resize 5m;--这种情况下排序数据过大时会报错需要扩容临时表空间

扩容临时表空间:

alter database tempfile '/u01/app/oracle/oradata/myorcl/temp02.dbf' resize 15m;--直接修改文件大小

alter database tempfile '/u01/app/oracle/oradata/myorcl/temp02.dbf' autoextend on;--打开文件自动扩展

alter tablespace temp02 add tempfile '/u01/app/oracle/oradata/myorcl/temp03.dbf' size 10m;--追加一个10m的临时表空间文件

原文地址:https://www.cnblogs.com/cyf18/p/10808211.html