TEMPORARY Tablespaces and TEMPFILES

来源:互联网 发布:解压缩软件美化版 编辑:程序博客网 时间:2024/04/27 19:10

1、 临时表空间

临时表空间主要用于存储临时表和SQL语句在执行排序操作的时候使用,它主要存储会话过程中的临时信息,如排序信息等
主要有以下使用场景:
两个大表进行关联后,执行排序(当用于排序的内存不足时,会使用临时表空间,排序内存由初始化参数:SORT_AREA_SIZE 决定),以下是查看该参数的方法:
这里写图片描述
2、执行analyze语句,进行表统计信息的收集
3、create index
4、select distinct
5、group by ,union ,minus,intersect,sort merge join等
6、存储Oracle的临时表及临时表的索引

2、临时表空间的创建

数据库在建立的过程中,会自动创建名为:temp的临时表空间,每个数据库,只能分配一个临时表空间,并且只能有一个默认的临时表空间,可以执行以下的语句创建数据库表空间:

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;

在建立用户的过程中,不需要显式的指定该用户的临时表空间,它将默认取数据库的默认表空间,该参数通过如下视图查询:

SELECT *  FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE'

其中:database_properties代表数据库的永久的属性
这里写图片描述
当前在该视图中也可以找到数据库默认的持久化表空间
这里写图片描述
针对临时表空间的性能方面的建议:
1. 用临时表空间代替永久表空间进行排序操作
2. 确保使用本地表空间管理临时表空间,而不是使用数据字典管理临时表空间(Use sort space bitmap instead of sys.fetandsys.uet for allocating space)
3. 使用tempfile代替datafile(可以减少备份和恢复的时间)
4. 将临时表空间分散在多个磁盘,减少表空间的争用,提升排序操作的性能

3、临时表空间的离线

临时表空间不允许离线,但是临时表空间对应的临时文件可以离线(当包含多个临时文件,必须有一个文件是在线的,否则提示错误信息)
这里写图片描述

http://www.laoxiong.net/
http://www.dba-oracle.com/t_ora_25153_temporary_tablespace_is_empty.htm
http://www.dba-oracle.com/t_ora_25152_tempfile_cannot_be_dropped.htm

0 0
原创粉丝点击