温故:

上一篇文章中我和大家分享了Oracle的smon和pmon的相关知识,今天又特地来给大家讲一讲Oracle的temp表空间,为什么要讲这个呢?和昨天的理由差不多,还是有一道考试题提到了这个temp,说真的还真没答对,所以就觉得有必要和大家聊聊这个知识点。

链接如下:Oracle小知识点之smon和pmon

知新:

一、概念

临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象的一个空间。当ORACLE里需要用到SORT(排序)的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。像数据库中一些操作: CREATE INDEX、SELECT DISTINCT、ORDER BY、GROUP BY等都可能会用到临时表空间。当操作完成后,系统会自动清理临时表空间中临时对象,自动释放临时段。这里的释放只是标记为空闲、可以重用,其实实质占用的磁盘空间并没有真正释放。这也是临时表空间有时会不断增大的原因。

临时表空间存储大规模排序操作(小规模排序操作会直接在RAM里完成,大规模排序才需要磁盘排序Disk Sort)和散列操作的中间结果.它跟永久表空间不同的地方在于它由临时数据文件(temporary files)组成的,而不是永久数据文件(datafiles)。临时表空间不会存储永久类型的对象,所以它不会也不需要备份。另外,对临时数据文件的操作不产生redo日志,不过会生成undo日志。创建临时表空间或临时表空间添加临时数据文件时,即使临时数据文件很大,添加过程也相当快。这是因为ORACLE的临时数据文件是一类特殊的数据文件:稀疏文件(Sparse File),当临时表空间文件创建时,它只会写入文件头部和最后块信息(only writes to the header and last block of the file)。它的空间是延后分配的.这就是你创建临时表空间或给临时表空间添加数据文件飞快的原因。

二、temp的查看方法

SELECT a.tablespace_name “表空间名”,
total “表空间大小”,
free “表空间剩余大小”,
(total - free) “表空间使用大小”,
total / (1024 * 1024 ) “表空间大小(M)”,
free / (1024 * 1024 ) “表空间剩余大小(M)”,
(total - free) / (1024 * 1024 ) “表空间使用大小(M)”,
round((total - free) / total, 4) * 100 “使用率 %”
FROM
(SELECT tablespace_name, SUM(bytes) free FROM dba_free_space GROUP BY tablespace_name) a ,
(SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name;

查看表空间的语句多种多样,就看你怎么去写了。你既可以写一个单独查询temp表空间的语句,也可以写一个查询所有表空间使用率的语句,既能看到temp表空间的使用率也能同时关注了其他表空间的使用情况,一举多得。比如查出的结果如下:

上面各字段的解释如下:

BYTES

NUMBER

 

Size of the file (in bytes)

BLOCKS

NUMBER

 

Size of the file (in Oracle blocks)

STATUS

CHAR(9)

 

File status:

·

· AVAILABLE

USER_BYTES

NUMBER

 

Size of the useful portion of the file (in bytes)

USER_BLOCKS

NUMBER

 

Size of the useful portion of the file (in Oracle blocks)

三、处理办法

临时表空间的使用率高了,怎么办呢?我这里提供两种方法。第一种是重启数据库,第二种是清除表空间中的数据。但是在这里我必须强调一点,一般情况下数据库在运行着业务的时候,是不允许轻易重启的,如果中途起不来那你就惨了。

另外就是我建议大家在遇到这个问题的时候,不要一上来就直接奔着处理问题去。应该换一个思路,比如先查查到底是什么情况导致的表空间的的使用率过高,正常情况下临时表空间如果没有一些新增的工作量的增加或者是排序任务变动,它每一天的使用率应该是基本一致的。突然的变化必然是有原因的,所以要先找原因再解决问题。不然的话,你上来就盲目的清数据或者重启数据库,很可能导致正在执行的工作出现问题。总的来说就是要治本。

关于这个内容就暂且讲到这里,以后如果有机会再说

Oracle小知识点之temp表空间相关推荐

  1. oracle清除temp表空间,Oracle 11G清理临时表空间

    一. 临时表空间收缩 1.1 说明 关于Oracle 的临时表空间,之前有整理过一篇Blog: 以下操作会占用大量的temporary: 1.用户执行imp/exp 导入导出操作时,会使用大量的tem ...

  2. oracle挥手temp表空间,oracle的TEMP空间作用及涉及的操作

    Oracle临时表空间 (一)作用:主要用来做查询和存放一些缓冲区数据.它涉及的操作主要有SELECT 和排序. (二)弊端:临时表空间消耗的主要原因是需要对查询的中间结果进行排序.重启数据库可以释放 ...

  3. oracle修改temp表空间大小,默认TEMP表空间变更,释放空间

    默认TEMP表空间变更 应用场景:由于TEMP表空间自动增涨,在增涨到一定大小会占用大量存储空间,需要对TEMP表空间减小 处理方法:  建立新的TEMP表空间---&gt将default_t ...

  4. Oracle 数据库、实例、表空间、用户、数据库对象

    Oracle是一种数据库管理系统,是一种关系型的数据库管理系统.通常情况了我们称的"数据库",包含了物理数据.数据库管理系统.内存.操作系统进程的组合体,就是指这里所说的数据库管理 ...

  5. ORA-1652 无法扩展TEMP表空间

    ORA-1652: unableto extend temp segment by 128 in tablespace TEMP 报错原因为temp表空间无法扩展 检查temp表空间情况,主要查看表空 ...

  6. Oracle Study案例之--基于表空间的时间点恢复(TSPITR)

     Oracle Study案例之--基于表空间的时间点恢复(TSPITR) TSPITR(表空间时间点恢复)用于将一个或多个表空间恢复到过去某个时间点的状态,而其他表空间仍然保持现有状态. TSPIT ...

  7. Oracle 同义词、DBLINK、表空间的使用

    Oracle 同义词 Oracle同义词创建及其作用 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和试图的功能类似,就是一种映射关系.本文介绍如何创建同义词语句,删除同义词以及 ...

  8. oracle pdb 表空间,Oracle 12c CDB 和 PDB 表空间管理和配置 说明

    注:本文谢绝转载. 1  管理CDB中的表空间 CDB表空间的管理和non-CDB 表空间的管理一样,CDB 也有一个实例,在安装的时候指定. --查看表空间: SQL> select inst ...

  9. oracle集群服务创建表空间,Oracle数据库集群添加表空间操作规范

    Oracle数据库集群添加表空间操作规范 Oracle数据库集群添加表空间操作规范 1.首先检查dg空间是否充足SQL> select name,total_mb,free_mb,USABLE_ ...

最新文章

  1. pyqt QGridLayout示例
  2. 解决margin塌陷的问题_margin塌陷问题及解决
  3. 华为手机在开发Android调试时logcat不显示输出信息的解决办法
  4. 技术驱动还是产品驱动
  5. 单片机人流统计装置的程序_单片机其实不难
  6. JAVA进阶教学之(Date日期的处理)
  7. iframe 页面富文本框数据怎么保存_文字太多PPT怎么做都丑?估计是没注意这些细节!...
  8. 消息队列面试 - 如何保证消息队列的高可用?
  9. “iPhone等苹果产品挤牙膏无创新”?库克正面回怼...
  10. 简述网卡的作用和工作原理_发电机调节器的作用及工作原理
  11. The Number of Products
  12. Shoulda, Woulda, Coulda
  13. linux 文本编辑器vi常用命令
  14. vcf通讯录转excel
  15. 9008刷机 小米max2_小米max2线刷包_小米max2刷机包_小米max2固件包_小米max2救砖包 - 线刷宝ROM中心...
  16. 蒙古文输入法linux版,蒙古文输入法下载 德力海蒙古文输入法 V2.1.3 官方安装版(附使用手册) 下载-脚本之家...
  17. 不同类型游戏音效竟有不同制作方法?—动作类型音效制作
  18. Android Studio Menu item 的简单使用
  19. 怎么在linux系统中输入日历,在Linux终端中使用日历
  20. el-checkbox 自定义 复选框【多选框】

热门文章

  1. faulting module msctfime.ime 纠结的微软拼音输入法
  2. 数字孪生智慧水务建设综述
  3. emc测试e3软件系数导入,EMC测量软件EMC32.PDF
  4. nginx+lua 实现的免费网站站长工具-防网络爬虫,自动推送百度,批量添加站长统计
  5. 【京东】职级、薪酬、绩效全认知
  6. 徐一帆:数字化转型为主轴,LTD方法论思想创新引领产教融合教育
  7. vi 整行 多行 复制与粘贴
  8. 2018 趁热说几句区块链,它真的能改变一切吗?
  9. 一个草根站长的逆袭之旅
  10. 任正非传递危机意识 缔造华为“狼文化