创建临时表空间或临时表空间添加临时数据文件时,即使临时数据文件很大,添加过程也相当快。这是因为ORACLE的临时数据文件是一类特殊的数据文件:稀疏文件(Sparse File),当临时表空间文件创建时,它只会写入文件头部和最后块信息(only writes to the header and last block of the file)。它的空间是延后分配的.这就是你创建临时表空间或给临时表空间添加数据文件飞快的原因。
##查看实例的临时表空间 SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE'; ##创建temp表空间 create temporary tablespace temp01 tempfile 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP02.DBF' size 1g autoextend off ; alter tablespace temp01 add tempfile 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP03.DBF' size 1g AUTOEXTEND OFF ; ##删除表空间文件 ALTER TABLESPACE TEMP01 DROP TEMPFILE 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP03.DBF'; ALTER DATABASE TEMPFILE 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP03.DBF' DROP INCLUDING DATAFILES; ##调整表空间数据文件大小 alter database tempfile 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP02.DBF' resize 2G ##临时表空间脱机/联机 ALTER DATABASE TEMPFILE 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP02.DBF' OFFLINE; ALTER DATABASE TEMPFILE 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP01.DBF' online; ##表空间 自动扩展 ALTER DATABASE TEMPFILE 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP02.DBF' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED; ##切换数据库默认表空间 alter database default temporary tablespace TEMP01; ##修改表空间数据文件 ALTER DATABASE TEMPFILE 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP01.DBF' offline; ren D:\APP\NIUEY\ORADATA\NIUEY\TEMP01.DBF TEMP.DBF ALTER DATABASE rename file 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP01.DBF' to 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP.DBF'; ALTER DATABASE TEMPFILE 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP.DBF' online; ##查看临时表空间使用 select * from ( select sess.SID, segtype, blocks*8/1000 "MB" ,sql_text from v$sort_usage sort, v$session sess ,v$sql sql where sort.SESSION_ADDR = sess.SADDR and sql.ADDRESS = sort.SQLADDR (+) order by blocks desc ) a where rownum<10
##开启日志 alter database add supplemental log data ; alter database drop supplemental log data ; alter database add supplemental log data (primary key,unique,foreign key,all) columns; alter database drop supplemental log data (primary key,unique,foreign key,all) columns; ##临时表空间 select * from dba_temp_files ; alter tablespace temp add tempfile 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP2.DBF' size 1G ; alter tablespace temp drop tempfile 'D:\APP\NIUEY\ORADATA\NIUEY\TEMP2.DBF'; ##offline online alter database tempfile 3 offline ; alter database tempfile 3 online ; ##数据表空间 select * from dba_data_files; alter tablespace users add datafile 'D:\APP\NIUEY\ORADATA\NIUEY\USERS02.DBF' size 1g; alter tablespace users drop datafile 10 ; ##offline online alter database datafile 10 offline drop ; alter database recover datafile 10 ; alter database datafile 10 online ;