一、临时表空间
临时表空间仅包含会话期间产生的短暂的数据,可改善多个无法在内存中完成的排序操作的并发性,同时还可以提高在排序操作中空间管理的效率。在临时表空间内,特定实例的排序操作共享一个排序段,排序段在数据库启动时创建,在数据库关闭时被释放。
在完成数据库的安装以后,数据库内默认存在一个名为temp的临时表空间,temp表空间可被数据库内的多个用户所共享。也可以使用create temporary tablespace语句创建临时表空间,同时使用create/alter user语句为用户指定临时表空间。
由于本地管理的表空间在空间管理方面的简便性和高效性,所以说临时表空间也是适用于本地管理的,在创建本地管理的临时表空间时要使用tempfile子句。
# 创建临时表空间 SQL> create temporary tablespace tmp_tbs 2 tempfile ‘D:\app\oracle\oradata\orcl\temp02.dbf‘ size 10m 3 extent management local; 表空间已创建。 # 修改默认临时表空间 SQL> alter database default temporary tablespace tmp_tbs; 数据库已更改。 # 查看默认临时表空间 SQL> select property_name,property_value from database_properties 2 where property_name=‘DEFAULT_TEMP_TABLESPACE‘; PROPERTY_NAME PROPERTY_VALUE ------------------------------ -------------------- DEFAULT_TEMP_TABLESPACE TEMP # 查看临时表空间的使用率 SQL> select * from dba_temp_free_space where tablespace_name=‘TEMP‘; TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE -------------------- --------------- --------------- ---------- TEMP 30408704 30408704 29360128
二、临时表空间组
使用临时表空间组能够避免一个临时表空间无法容纳所有用户排序的情况出现。
# 创建临时表空间组: SQL> create temporary tablespace tmp_ts 2 tempfile ‘D:\app\oracle\oradata\orcl\temp03.dbf‘ size 5m 3 tablespace group group1; 表空间已创建。 # 将临时表空间加入临时表空间组: SQL> alter tablespace tmp_tbs tablespace group group1; 表空间已更改。 # 将某临时表空间从临时表空间组移除 SQL> alter tablespace tmp_tbs tablespace group ‘‘; 表空间已更改。
# 当临时表空间组是数据库默认临时表空间时,删除最后一个成员将报错:ORA-10919:Defualt temporary tablespace group must be have at least one tablespace,执行下列语句后,再删除最后一个成员,临时表空间组自动消失SQL>alter database default temporary tablespace temp;数据库已更改。
# 将一个临时表空间组作为默认临时表空间 SQL> alter database orcl default temporary tablespace group1; 数据库已更改。 SQL> select property_name,property_value from database_properties 2 where property_name=‘DEFAULT_TEMP_TABLESPACE‘; PROPERTY_NAME PROPERTY_VALUE ------------------------------ -------------------- DEFAULT_TEMP_TABLESPACE GROUP1
时间: 2024-11-09 03:01:02