重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3272|回复: 2
打印 上一主题 下一主题

oracle之临时表空间组

[复制链接]
跳转到指定楼层
楼主
发表于 2014-5-6 14:44:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在一个临时表空间 组中,用户可以定义很多临时表 空间。一个临时表空间组包含至少一个临时表空间,但是没有包含最大个临时表空间个数。注意,临时表空间组的名子和临时表空间的名字必须不相同,不然会出现错误。任何临时表空间都可以 在一个临时 表空间中添加、删除甚至 移动到其他临时表空间组中。
临时表空间的好处:
1)可以避免在sql查询排序的时候导致的表空间不足的情况,避免hold这个结果,尤其是在 分区表中。
2)当一个用户使用多个会话登录 的时候,可以使用不同的临时表空间来提高响应性能。
3)一个并行操作一个并行服务将有力的利用临时表空间组 。
一)创建临时表空间组:
SQL> select file_name,tablespace_name from dba_temp_files;
 
FILE_NAME                                                    TABLESPACE_NAME
------------------------------------------------------------ ------------------------------
/opt/app/oracle/RHYS/temp01.dbf                              TEMP
/opt/app/oracle/RHYS/temp02.dbf                              TEMP02
SQL> create temporary tablespace temp03 tempfile '/opt/app/oracle/RHYS/temp03.dbf' size 20M autoextend off tablespace group temp_group01;
Tablespace created.
SQL> 
SQL> select * from dba_tablespace_groups;
GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP01                   TEMP03
SQL> 
二)把临时表空间加入临时表空间组
SQL> alter tablespace temp tablespace group temp_group01;
 
Tablespace altered.
 
SQL> select * from dba_tablespace_groups;
GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP01                   TEMP
TEMP_GROUP01                   TEMP03
 
SQL> alter tablespace temp02 tablespace group temp_group01;
 
Tablespace altered
SQL> 
SQL> select * from dba_tablespace_groups;
 
GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP01                   TEMP
TEMP_GROUP01                   TEMP02
TEMP_GROUP01                   TEMP03

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
 楼主| 发表于 2014-5-6 14:45:20 | 只看该作者
三)从临时表空间组 中去掉临时表空间;
 
SQL> alter tablespace temp03 tablespace group '';
Tablespace altered.
 
SQL> select * from dba_tablespace_groups;
GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP01                   TEMP
TEMP_GROUP01                   TEMP02
 
SQL> 
注意:这只是在临时表空间组中剔除一个临时表空间,但是剔除的该临时表空间 依然存在:
SQL> select file_name,tablespace_name from dba_temp_files;
 
FILE_NAME                                                    TABLESPACE_NAME
------------------------------------------------------------ ------------------------------
/opt/app/oracle/RHYS/temp01.dbf                              TEMP
/opt/app/oracle/RHYS/temp02.dbf                              TEMP02
/opt/app/oracle/RHYS/temp03.dbf                              TEMP03
SQL> 

回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2014-5-6 14:45:46 | 只看该作者
4)删除临时表空间组:
把在临时表空间组中所有的临时表空间剔除后,临时表空间组会自动删除:
SQL> select * from dba_tablespace_groups;
GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP01                   TEMP
TEMP_GROUP01                   TEMP02
 
SQL> alter tablespace temp02 tablespace group '';
Tablespace altered.
 
SQL> alte tablespace temp tablespace group '';
SP2-0734: unknown command beginning "alte table..." - rest of line ignored.
SQL> alter tablespace temp tablespace group '';
 
Tablespace altered.
 
SQL> select * from dba_tablespace_groups;
no rows selected
 
SQL> 
5)把临时表空间组设置为数据库默认的临时 表空间 组;
SQL> SELECT * FROM DBA_TABLESPACE_GROUPS;
 
GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP01                   TEMP
TEMP_GROUP01                   TEMP02
 
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_GROUP01;
 
Database altered.
 
SQL> 
SQL> select * from database_properties where rownum<5;
PROPERTY_NAME                  PROPERTY_VALUE                                     DESCRIPTION
------------------------------ -------------------------------------------------- ----------------------------------------------------------------------
DICT.BASE                      2                                                  dictionary base tables version #
DEFAULT_TEMP_TABLESPACE        TEMP_GROUP01                                       Name of default temporary tablespace
DEFAULT_PERMANENT_TABLESPACE   USERS                                              Name of default permanent tablespace
DEFAULT_EDITION                ORA$BASE                                           Name of the database default edition
SQL> 
6)把一个临时表空间移动到 其他临时表空间中;
SQL> select * from dba_tablespace_groups;
 
GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP01                   TEMP
TEMP_GROUP01                   TEMP02
 
SQL> alter tablespace temp02 tablespace group temp_group02;
 
Tablespace altered.
SQL> select * from dba_tablespace_groups;
GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP01                   TEMP
TEMP_GROUP02                   TEMP02
SQL>
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-4 19:15 , Processed in 0.091914 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表