1、临时数据产生后 Oracle 数据库会先将这些存放到内存的 PGA)内的 sor_area 排序区
(SORT_AREA_SIZE 参数)的地方,
专门用来存放这些因为排序操作而产生的临时数据。但是这个分区的容量是有限的。
当这个分区的大小不足以容纳排序后所产生的记录时,数据库系统就会将临时数据存放到临时表空间中和重做
日志与归档的关系类似
2、Oracle 临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的
中间结果进行排序。
重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题 sql 语句的执行,temp 表空间会一直
增长。直到耗尽硬盘空间。
网上有人猜测在磁盘空间的分配上,oracle 使用的是贪心算法,如果上次磁盘空间消耗达到 1GB,那么临时
表空间就是 1GB。
也就是说当前临时表空间文件的大小是历史上使用临时表空间最大的大小。
临时表空间的主要作用:
索引 create 或 rebuild;
Order by 或 group by;
Distinct 操作;
Union 或 intersect 或 minus;
Sort-merge joins;
analyze
相关文档
评论