ORACLE中的一些问题——临时表空间

ORACLE中的一些问题——临时表空间

ID:37866078

大小:21.94 KB

页数:4页

时间:2019-06-01

ORACLE中的一些问题——临时表空间_第1页
ORACLE中的一些问题——临时表空间_第2页
ORACLE中的一些问题——临时表空间_第3页
ORACLE中的一些问题——临时表空间_第4页
资源描述:

《ORACLE中的一些问题——临时表空间》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1临时表空间1.1什么是临时表空间    在Oracle数据库中进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用OrderBY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据。对于这些临时数据,Oracle数据库是如何处理的呢?通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内。在这个程序全局区中有一个叫做排序区的地方,专门用来存放这些因为排序操作而产生的临时数据。但是这个分区的容量是有限的。当这个分区的大小不足以容纳排序后所产生

2、的记录时,数据库系统就会将临时数据存放到临时表空间中。这就是临时表空间的来历。看起来好像这个临时表空间是个临时工,对于数据库的影响不会有多大。其实大家这是误解这个临时表空间了。在用户进行数据库操作时,排序、分组汇总、索引这些作业是少不了,其会产生大量的临时数据。为此基本上每个数据库都需要用到临时表空间。而如果这个临时表空间设置不当的话,则会给数据库性能带来很大的负面影响。 1.2临时表空间作用    索引create或rebuild    Orderby或groupby    Distinct操作    Union或intersect或minus    Sort-

3、mergejoins    analyze 1.1临时表空间建立   以下命令是创建一个临时表空间.其命令和创建其它表空间不同的地方是增加temporay关建字.请注意.如果tablespace设置的是maxsizeunlimited那么,临时表空间也会一直在需要的时候增长.如果在创建数据库时没有指定默认临时表空间.那么会用system表空间作为默认临时表空间当system表空间是本地管理时,你必须定义最少一个默认表空间在创建数据库的时候.本地管理的system表空间不能作为默认临时表空间.   createtemporarytablespaceTEMP1TEMP

4、FILE'/oradata/TEMP1_01.dbf'size100M;   临时表空间与正常的表空间还有以下区别    1.Tempfiles总是被设置为NOLOGGING模式    2.不能把一个tempfile设置成readonly模式    3.不能重命名一个tempfile    4.不能通过alterdatabase来创建一个tempfile    5.当你创建或者重写tempfile大小的时候,数据通常不会自动分配tempfile指定的大小的    6.磁盘空间给它(即不会初始化),但是会在块被访问之前分配.(这也是为什么创建临时表空间会比平时表空间

5、要快的多的原因)    7.tempfile的信息存储在dba_temp_files,动态视图v$tempfile中.不在dba_data_files或者v$datafile中.     临时表空间的信息不会记录在controlfile中,所以当启动打开数据库时,不会做临时表空间的校验,即,即使临时表空间不存在也可以打开数据库(默认情况下oracle会自动创建) 1.2临时表空间修改大小   ALTERdatabaseTEMPFILE'F:oracleproduct10.2.0oradataobpmTEMP01.dbf'resize100M; 1.1临

6、时表空间删除   droptablespacetemp01includingcontentsanddatafiles;   注意以上语句并不会真正的删除dbf文件.所以下次新建的时候如果是已存在一的file最好在新建表空间语名中加上reuse 1.2将当前临时表空间指定为新的临时表空间  alterdatabasedefaulttemporarytablespaceTEMP1;    查看当前数据库默认临时表空间:   select*fromdatabase_propertieswhereproperty_name='DEFAULT_TEMP_TABLESPACE

7、' 1.3监空临时表空间使用大小   表空总大小    selecttablespace_name,(blocks*8)/1024fromdba_temp_files;    表空间已使用大小     select(blocks*8)/1024fromv$sort_usage;    可以通过v$sort_usage查看具体的详细信息.比如是什么操作用到temp表空间.哪名sql,用了多少个段等等.    在dba_segment,dba_extents中没有查看临时表空间段和临时表空间的扩展.    据说临时表空间用了就不会回收段.想查证一下.但是没有找到资料,

8、我看V$s

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。