临时表空间
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%’;