临时表空间  

l  是为排序操作使用的;

l  可以有多个用户共享,不能包含任何永久对象;

l  其排序段是在实例启动后当有第一个排序操作时创建的,排序段在需要时可以通过分配EXTENTS 来扩展;

l  创建临时表空间时,必须使用标准数据块,最好使用本地管理的表空间;

l  临时数据文件的状态不能为只读;

l  不能将临时数据文件重命令;

l  临时数据文件总是置为NOLOGGING状态;

l  不能使用ALTER DATABASER 命令创建临时数据文件;

l  以只读方式运行的数据库需要临时数据文件;

l  介质回复不能是恢复临时数据文件;

l  为了优化某一临时表空间中排序的效率,应该将UNIFORM SIZE 设为 SORT_ARTA_SIZE PGA中排序区的大小)参数的整数倍

查看在数据库中有多少个表空间以及它们的状态
SELECT tablespace_name, status, contents
FROM dba_tablespaces;

查看临时表空间和对应的数据文件

SELECT  f.file#,  t.ts#,  f.name “File”,  t.name “Tablespace”
FROM  v$tempfile f,  v$tablespace t
WHERE  f.ts# = t.ts#;

 

创建临时表空间

CREATE  TEMPORARY  TABLESPACE  jinlian_temp
TEMPFILE  ‘J:\DISK9\MOON\jinlian_temp.dbf’
SIZE  10M

EXTENT  MANAGEMENT  LOCAL
UNIFORM  SIZE 2M;

验证该表空间是否建立,是否为临时表空间,对应的数据文件是否也被创建
SELECT  tablespace_name,  status,  contents
FROM  dba_tablespaces
WHERE  tablespace_name  LIKE  ‘JIN%’;

 

SELECT  f.file#,  t.ts#,  f,name  “File” ,  t.name  “tablespace”  //注意,此处别名也加了””
FROM  v$tempfile  f,  v$tablespace  t
WHERE  f.ts# = t.ts#

 

SELECT tablespace_name,  block_name,  extent_management, segment_space_management,  min_extlen
FROM  dba_tablespaces
WHERE  tablespace_name  LIKE  ‘JIN%’;

默认临时表空间

如果没有设定默认临时表空间,那么用户在创建它时没有使用TEMPORARY TABLESPACE子句,将自动使用system 表空间作为排序区,使system表空间碎片化,从而使数据库系统效率下降。

默认临时表空间不能被删除,除非有一个新的默认临时表空间(利用ALTER DATABASE 设置)。

因为默认临时表空间必须是临时(temporary)表空间或者是系统(system)表空间,所以不能将默认临时表空间改为一个永久表空间,也不能将其设置为脱机

得到当前默认临时表空间

COL  PROPERTY_NAME  FOR  A25;

COL  PROPERTY_VALUE  FOR  A16;

COL  DESCRIPTION  FOR  A38;

 

SELECT * FROM  DATABASE_PROPERTIES

WHERE  PROPERTY_NAME  LIKE  ‘DEFAULT%’;