作者:雨竹清风
临时表空间是作为排序操作使用的。临时表空间中的排序段是在实例启动后,当有第一个排序操作时创建的。
1.查看在数据库中临时表空间的名称和数量,状态等。
SQL> desc dba_tablespaces;
名称 是否为空? 类型
----------------------------------------- -------- ------------
TABLESPACE_NAME NOT NULL VARCHAR2(30)
BLOCK_SIZE NOT NULL NUMBER
INITIAL_EXTENT NUMBER
NEXT_EXTENT NUMBER
MIN_EXTENTS NOT NULL NUMBER
MAX_EXTENTS NUMBER
PCT_INCREASE NUMBER
MIN_EXTLEN NUMBER
STATUS VARCHAR2(9)
CONTENTS VARCHAR2(9)
LOGGING VARCHAR2(9)
FORCE_LOGGING VARCHAR2(3)
EXTENT_MANAGEMENT VARCHAR2(10)
ALLOCATION_TYPE VARCHAR2(9)
PLUGGED_IN VARCHAR2(3)
SEGMENT_SPACE_MANAGEMENT VARCHAR2(6)
DEF_TAB_COMPRESSION VARCHAR2(8)
RETENTION VARCHAR2(11)
BIGFILE VARCHAR2(3)
SQL> select TABLESPACE_NAME, STATUS, CONTENTS from dba_tablespaces;
TABLESPACE_NAME STATUS CONTENTS
--------------- --------- ---------
SYSTEM ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
SYSAUX ONLINE PERMANENT
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT
EXAMPLE ONLINE PERMANENT
FANLU ONLINE PERMANENT
LULU ONLINE PERMANENT
已选择8行。
从结果看只有一个临时表空间,名字为TEMP。
2.为了得到临时表空间所对应的数据文件,可以使用v$tablespace和v$tempfile进行关联查询。
SQL> col file for a43
SQL> col Tablespace for a10
SQL> select f.file#,t.ts#,f.name "FILE",t.name "Tablespace" from v$tempfile f,v$tablespace t where f.ts#=t.ts#;
FILE# TS# FILE Tablespace
---------- ---------- ------------------------------------------
1 3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF TEMP
从结果看临时表空间TEMP所对应的数据文件为D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF。其序号为3号,文件号为1号。
3.创建临时表空间
SQL> create temporary tablespace xixi_temp
2 tempfile 'D:\oracle\product\10.2.0\user_tablespace\xixi_temp.dbf'
3 size 10M
4 extent management local
5 uniform size 2 M;
表空间已创建。
4.查看是否已经创建成功
SQL> select TABLESPACE_NAME, STATUS, CONTENTS from dba_tablespaces;
TABLESPACE_NAME STATUS CONTENTS
--------------- --------- ---------
SYSTEM ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
SYSAUX ONLINE PERMANENT
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT
EXAMPLE ONLINE PERMANENT
FANLU ONLINE PERMANENT
LULU ONLINE PERMANENT
XIXI_TEMP ONLINE TEMPORARY
已选择9行。
通过视图关联进行查询。
SQL> col Tablespace for a10
SQL> select f.file#,t.ts#,f.name "FILE",t.name "Tablespace" from v$tempfile f,v$tablespace t where f.ts#=t.ts#;
FILE# TS# FILE Tablespace
----- ----- ----- ----------------------------------- ----------
1 3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF TEMP
2 10 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XIXI_TEMP.DBF XIXI_TEMP
临时表空间的特性:
1.不能设为只读状态
2.不能对其进行重命名
3.临时数据文件总为logging状态
4.不能使用alter database进行创建数据文件
5.以只读方式运行的数据库需要临时数据文件
6.介质恢复不了临时数据文件