阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle使用表空间组来管理多个临时表空间

126次阅读
没有评论

共计 2848 个字符,预计需要花费 8 分钟才能阅读完成。

表空间组能让用户使用来自多个临时表空间中的临时空间。使用表空间组,而不是单个临时表空间,可以减少由于一个临时表空间没有足够的空间来处理排序而引发的问题。表空间组能让单个并行操作的并行执行服务器进程使用多个临时表空间。表空间组有以下特性:
. 它包含至少一个临时表空间。对于一个表空间组可以包含的临时表空间数量没有限制。
. 它共享命名空间,所以表空间组的名字不能与任何表空间名相同。
. 当对数据库或用户指定缺省临时表空间时可以使用表空间组来代替。

我们不能显示创建一个表空间组,但可以在创建第一临时表空间时隐式来创建表空间组。当表空间组中的最后一个临时表空间被删除后,表空间组也会被删除。查询 dba_tablespace_groups 可以查看相关表空间组与相关的临时表空间。

创建表空间组
当执行 create temporary tablespace 或 alter tablespace 语句时通过指定 tablespace group 子句来隐式创建表空间组并且所指定的表空间组要在当前数据库中并不存在。例如,如果表空间组 group1,group2 不存在,那么下面的语句将会创建这两个表空间组,并且每个表空间组只有一个临时表空间存在。

SQL> create temporary tablespace temp2 tempfile '+DATA/JY/4B2C6373AE2547CCE053AB828A0A7CA3/TEMPFILE/temp2.dbf' size 50M tablespace group group1;

Tablespace created.

SQL> alter tablespace temp tablespace group group2;

Tablespace altered.


SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
GROUP2                         TEMP
GROUP1                         TEMP2

更改表空间组成员
可以向现有表空间组增加临时表空间,这可以通过执行包含有 tablespace group 子句的 create temporary tablespace 或 alter tablespace 语句来完成。

下面的语句将向现有表空间组 group1 中增加一个临时表空间 temp3,因些表空间组 group1 包含临时表空间 temp2 与 temp3。

SQL> create temporary tablespace temp3 tempfile '+DATA/JY/4B2C6373AE2547CCE053AB828A0A7CA3/TEMPFILE/temp3.dbf' size 50M tablespace group group1;

Tablespace created.

SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
GROUP2                         TEMP
GROUP1                         TEMP2
GROUP1                         TEMP3

下面的语句将向现有表空间组 group2 中增加一个临时表空间 temp2,但因为临时表空间 temp2 已经存在,语句只是将临时表空间 temp2 从表空间组 group1 移到表空间组 group2 中。

SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
GROUP2                         TEMP
GROUP2                         TEMP2
GROUP1                         TEMP3

现在表空间组 group2 包含临时表空间 temp,temp2,表空间组 group1 只包含临时表空间 temp3。

下面的语句将从表空间组 group1 中删除临时表空间 temp3

SQL> alter tablespace temp3 tablespace group '';

Tablespace altered.

SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
GROUP2                         TEMP
GROUP2                         TEMP2

临时表空间 temp3 不再属于任何表空间组。因此表空间组 group1 不包含任何临时表空间,因此隐式地删除了表空间组 group1。

指定表空间组作为数据库的缺省临时表空间
通过执行 alter database … default temporary tablespace 语句来指定一个表空间组作为数据库的临时表空间。

SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

PROPERTY_NAME                                       PROPERTY_VALUE
--------------------------------------------------  --------------------------------------------------
DEFAULT_TEMP_TABLESPACE                             TEMP



SQL> alter database default temporary tablespace group2;

Database altered.


SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

PROPERTY_NAME                                       PROPERTY_VALUE
--------------------------------------------------  --------------------------------------------------
DEFAULT_TEMP_TABLESPACE                             GROUP2

任何没有显示指定临时表空间的用户,将可以使用临时表空间 temp,temp2 中的空间。当表空间组被指定作为数据库的临时表空间时,不能删除表空间组中的任何成员。要删除临时表空间必须首先要删除表空间组。同样不能删除作为数据库的缺省临时表空间。

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144502.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2848字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中