当前位置:  数据库>oracle

临时表空间(Temporary Tablespace)相关

    来源: 互联网  发布时间:2017-05-13

    本文导语: Temporary Tablespace Temporary Tablespace 用于存放瞬时数据,只有在session连接期间才能够看到数据。Permanentobject无法创建在temporarytablespace中。 空间利用原理: 它不会由smon来监控、回收空间。而是使用SEP(Sort Extent Pool)来记录空闲的ext...

Temporary Tablespace

Temporary Tablespace 用于存放瞬时数据,只有在session连接期间才能够看到数据。Permanentobject无法创建在temporarytablespace中。

空间利用原理:

它不会由smon来监控、回收空间。而是使用SEP(Sort Extent Pool)来记录空闲的extent。

在OracleDatabase创建数据库的时候会自动的创建默认临时表空间,并且临时表空间的类型是 Locally Managed Temporary Tablespace with Tempfile 。

Temporary File

本地管理临时表空间拥有temp file,它是为存放hash数据、排序数据等而设计的文件。Temp file同样在超出memory大小后存储结果集的数据。

TemporaryFile在创建的时候,就像一个稀疏文件,不会占用磁盘空间。只有当第一次使用的时候才会在其中创建temporary segment,分配disk block。

Temp file 与 通常的数据文件(permanent data file)有如下不同点:

1.      持久化数据库对象比如说通常的表,不会存放于temp file中。

2.      temp file 通常是nologging状态。

3.      无法将temp file置于read-only状态(无法write,temp file将没有意义)。

4.      无法使用alter database创建 temp file 。

5.      无法保证temp file的大小,就像UNIX系统下的sparse files 。稀疏文件解释请看附录1。

6.      查询temp file的视图也和普通数据文件视图不一样,是在dba_temp_files和v$tempfile中。

Temporary Segment

执行查询的过程中,oracle db通常需要临时工作空间。通常来说,sorting、hashing、merging bitmaps都需要用到临时段。当创建一个索引的时候,oracle db 同样将索引segment放在临时segemnt中,然后索引创建完之后转换为持久化index segment。

如果操作可以在内存中完成,那么oracle db不会使用临时segment。不管怎样如果memory不可用,那么数据库自动的分配一个在存储磁盘上面的临时segment。

临时segement的改变不会记录在online redo log中,除了那些在临时段上面的空间管理操作。

Temporary table

临时表中的数据,只保证存在于事务或者会话当中(取决于定义信息)。数据在会话当中是私有的,也就是说其他的会话只能看到自己会话内更改的数据。

在创建临时表的时候,只需要指定临时表的生命周期范围,事务 or 会话 有效,而不需要指定它的存储参数,创建一个临时表,其实只是创建了临时表的定义信息。只有当在session内第一次插入数据的时候,才会在用户相应的临时表空间内非配temporary segment(一个segment可以被多个用户使用,只是分配各自的extent)。

临时表通常只有定义信息,并且数据存放是动态的。可以存放于同一个temporary tablespace , 也可以是不同的。比如user 1 default temporary tablespace 为temp 1 ,user 2 为temp 2 ,那么u1 存储临时数据到 temp1 中,u2 存储临时表数据到temp2 中。

虽然临时表数据的存储是动态的,但是因为临时表的定义信息是静态的,所以也可以创建索引在临时表上,数据的存放也与临时表类似,在第一次使用的时候分配临时segemnt。当然,也可以创建视图、触发器在临时表上。

什么时候需要使用Temporary Tablespace

首先就是当使用临时表的时候多个用户会共享使用一个temporarysegment,还有hashing,bitmap merge,然后就是排序操作了,当操作需要使用的内存空间大于sort_area_size的时候,就会使用临时表空间做为临时存储,进行排序操作,以下是需要排序的操作,也就是说有可能使用临时表空间的操作。

- Index creation.

创建索引的时候,服务器进程在构建tree之前按照索引值排序好(这可能会在临时表空间中进行)。排序完成后,会在indextablespace中使用临时segment构建最终的index,一旦索引构建结束,segment type改变为index 。(如果创建index失败,则需要smon来负责清理这些index tablespace中的临时空间)

- ORDER BY or GROUP BY clauses of SELECTstatements.

- DISTINCT values of SELECT statements.

需要排序来消除重复值

- UNION, INTERSECTor MINUS operations.

因为需要消除重复值,所以需要排序操作(这里不包括unionall)

- Sort-Merge joins.

如果没有索引可用,一个等值连接需要分别执行全表所描和排序操作。然后排序好的rowsource会被合并在一起,取出两个rowsource 中匹配的行。

- Analyze command execution.

分析、收集统计信息的时候会需要排序操作。优化器需要收集的统计信息在附录2

-Others

比如说创建主键,createtable as select 等操作。


    
 
 

您可能感兴趣的文章:

  • Oracle tablespace表空间调整
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 用C如何在磁盘开辟一个大的空间,用来存储相关信息
  • c# 命名空间与程序集的相关概念
  • java命名空间javax.xml.stream接口xmlstreamwriter成员方法: setnamespacecontext定义参考
  • 我的sun5.8工作站下目录下空间不够,其他目录还有空间,怎么把其他目录下的空间分配过来?
  • java命名空间javax.xml.stream.events接口startelement成员方法: getnamespaces定义参考
  • 内核空间能否调用用户空间程序?
  • java命名空间javax.xml.stream接口xmleventwriter成员方法: setnamespacecontext定义参考
  • 空间不足,想把现在的空间调整一下?跪求
  • java命名空间java.awt.color类icc_profile的类成员方法: getcolorspacetype定义及介绍
  • 用户进程有自己独立的地址空间,内核线程没有自己的地址空间 该怎样理解: ?
  • java命名空间javax.xml.stream.events接口startelement成员方法: getnamespacecontext定义参考
  • 请问内核空间和用户空间有什么区别,是怎么划分的.谢谢
  • java命名空间javax.jws注释类型webparam的类成员方法: targetnamespace定义及介绍
  • 在Solaris中用什么命令查看磁盘空间及空闲空间
  • java命名空间javax.jws注释类型webresult的类成员方法: targetnamespace定义及介绍
  • 高分求教:root的空间不够了,怎样增加空间?
  • java命名空间javax.xml.namespace接口namespacecontext成员方法: getprefix定义参考
  • 内核空间和用户空间怎么通信?
  • java命名空间java.awt.color类icc_profile的类成员方法: getpcstype定义及介绍
  • 为什么这么多空间说说根目录空间不足啊
  • java命名空间javax.xml.stream接口xmlstreamreader成员方法: getnamespaceprefix定义参考
  • 如何将数据包sk_buff从内核空间提交给用户空间呢?
  • java命名空间javax.xml.soap接口soapelement成员方法: addnamespacedeclaration定义参考
  • solaris下通过应用程序如何访问pci设备的配置空间,i/o空间等?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,