转:

今天开发反映说临时表空间不够要求添加临时表空间,添加完成(添加了30G的临时表空间)又报临时表空间的不足,开发又要求是添加,有添加了10G,监控临时表空间的使用情况,又撑满了,又添加了30G,最后临时表空间又撑满了,最后批处理还是没有执行,SQL语句的执行是一次性全部执行完成,最后的解决办法是开发使用游标,一万条数据一提交或者定量提交,下午监控临时表空间的使用情况发现使用率 74.91%。不禁有些疑问到底是那些用户在使用临时表空间,使用临时表空间的大小有多大,

在做一些什么操作,SQL语句是什么。

首先要说明一点的是表空间的使用惰性,如果你一下使用几十个G的临时表空间,如果SQL语句执行失败,临时表空间的释放需要时间,不会一下全部释放,这个时候我们检查临时表空间的使用率发现使用率已经是99%,如果你扩容临时表空间,扩容30G,开发又开始执行sql,你会发现临时表空间使用率蹭蹭的网上增最后又达到了99%,开发的sql又没有执行过去,还是报临时表空间不足,而临时表空间释放有需要时间,如果开发的非常着急需要执行sql。所以建议dba一次扩容临时表,扩容大点,

说一下今天处理问题的过程,

1.查询临时表空间的使用率:

select c.tablespace_name,

to_char(c.bytes/1024/1024/1024,'99,999.999') total_gb,

to_char( (c.bytes-d.bytes_used)/1024/1024/1024,'99,999.999') free_gb,

to_char(d.bytes_used/1024/1024/1024,'99,999.999') use_gb,

to_char(d.bytes_used*100/c.bytes,'99.99') || '%'use

from  (select tablespace_name,sum(bytes) bytes

from dba_temp_files GROUP by tablespace_name) c,

(select tablespace_name,sum(bytes_cached) bytes_used

from v$temp_extent_pool GROUP by tablespace_name) d

where c.tablespace_name = d.tablespace_name;

2.查询那些用户在使用

select a.username,

a.sql_id,

a.SEGTYPE,

b.BYTES_USED/1024/1024/1024||‘G’,

b.BYTES_FREE/1024/1024/1024  from   V$TEMPSEG_USAGE  a  join  V$TEMP_SPACE_HEADER b on   a.TABLESPACE=b.tablespace_name;

解释username  正在执行sql的用户名

sql_id    正在执行的sql的的sql_id

segtype   正在执行的SQL语句做的是什么操作

BYTES_USED 正在执行sql语句使用的临时表空间的大小

BYTES_FREE  剩余多少临时表空间

大家可以看到这个临时表空间的有6个数据文件,查询的结果显示按照每个临时的数据文件使用了多少,还剩余多少,又又有一个问题是第一用户DBSNMP用户已经把临时表空间占满了那么第二个用户还能使用这个六个数据文件的临时表空间么,个人理解是六个数据文件中有第一个用户在使用,也有第二个用户在使用。

查询实例中时候是否有大字段在使用临时表空间:

select *  from V$TEMPORARY_LOBS;

关于数据字典V$TEMP_SPACE_HEADER官方文档的解释:

V$TEMP_SPACE_HEADER 显示每个LOCALLY MANAGED临时表空间的每个文件的聚合信息,包括当前正在使用的空间量以及空间头中标识的空闲量。

Column Datatype Description

TABLESPACE_NAME

VARCHAR2(30)
Name of the temporary tablespace

FILE_ID

NUMBER
Absolute file number

BYTES_USED

NUMBER
How many bytes are in use

BLOCKS_USED

NUMBER
How many blocks are in use

BYTES_FREE

NUMBER
How many bytes are free

BLOCKS_FREE

NUMBER
How many blocks are free

RELATIVE_FNO

NUMBER
The relative file number for the file

关于V$TEMPSEG_USAGE的官方文档的解释:

V$TEMPSEG_USAGE 描述临时段使用情况。

数据类型

描述


USERNAME

VARCHAR2(30)

请求临时空间的用户


USER

VARCHAR2(30)

此列已过时并维护以便向后兼容。

此列的值始终等于中的值


USERNAME


SESSION_ADDR

RAW(4 | 8)

会话地址


SESSION_NUM

NUMBER

会话序列号


SQLADDR

RAW(4 | 8)

SQL语句的地址


SQLHASH

NUMBER

SQL语句的哈希值


SQL_ID

VARCHAR2(13)

SQL语句的SQL标识符


TABLESPACE

VARCHAR2(31)

分配空间的表空间


CONTENTS

VARCHAR2(9)

指示表是否


TEMPORARY


PERMANENT


SEGTYPE

VARCHAR2(9)

排序类型的类型:


  • SORT


  • HASH


  • DATA


  • INDEX


  • LOB_DATA


  • LOB_INDEX


SEGFILE#

NUMBER

初始范围的文件号


SEGBLK#

NUMBER

初始范围的块号


EXTENTS

NUMBER

分配给排序的范围


BLOCKS

NUMBER

分配给排序的块中的范围


SEGRFNO#

NUMBER

初始范围的相对文件号

关于V$TEMP_EXTENT_POOL的官方文档中的解释

V$TEMP_EXTENT_POOL显示缓存并用于实例的临时空间的状态。请注意,临时空间缓存的加载是惰性的,并且实例可以处于休眠状态。

数据类型

描述


TABLESPACE_NAME

VARCHAR2(30)

表空间的名称


FILE_ID

NUMBER

绝对文件号


EXTENTS_CACHED

NUMBER

已缓存的范围数


EXTENTS_USED

NUMBER

实际使用的范围数


BLOCKS_CACHED

NUMBER

缓存的块数


BLOCKS_USED

NUMBER

使用的块数


BYTES_CACHED

NUMBER

缓存的字节数


BYTES_USED

NUMBER

使用的字节数


RELATIVE_FNO

NUMBER

相对文件号

关于V$TEMPORARY_LOBS官方文档解释

V$TEMPORARY_LOBS 显示临时LOB。

数据类型

描述


SID

NUMBER

会话ID


CACHE_LOBS

NUMBER

缓存临时LOB的数量


NOCACHE_LOBS

NUMBER

nocache临时LOB的数量


ABSTRACT_LOBS

NUMBER

抽象LOB的数量

如果书写过程或者对官方文档理解有什么错误欢迎大家留言。

来自 “ ITPUB博客 ”
,链接:http://blog.itpub.net/31547066/viewspace-2286048/,如需转载,请注明出处,否则将追究法律责任。

oracle11g 查询临时表空间的使用率和正在使用临时表空间的用户的更多相关文章

  1. Oracle案例08——xx.xx.xx.xx,表空间 SYSAUX 使用率>95%%

    本实例主要针对Oracle表空间饱满问题处理方法做个步骤分享.  一.告警信息 收到zabbix告警信息,表空间 SYSAUX 使用率>95%%,系统表空间sysaux使用率超过了95%. 二. ...

  2. oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库

    最近由于系统重装,在还原dmp备份文件时,由于数据原因(用exp命令导出时表没有导出全部),导致系统不能正常运行.根据网上的信息和个人实际情况,做个记录,便于后用. oracle 导出空表方法: 1. ...

  3. 老生常谈:关于undo表空间的使用率

    就在前几天,又有一个客户向我咨询undo表空间使用率的问题. 这让我想起几年前曾经有个省份的案例,客户的实际运维人员是一位刚毕业不久的女孩,几乎不懂Oracle原理,项目经理交给她的任务也是基础运维工 ...

  4. ArcSDE for Oracle表空间管理——暂时(TEMP)表空间

    Oracle暂时表空间主要用来做查询和存放一些缓冲区数据.暂时表空间消耗的主要原因是须要对查询的中间结果进行排序. 重新启动数据库能够释放暂时表空间,假设不能重新启动实例,而一直保持问题sql语句的运 ...

  5. Linux磁盘空间被占用问题 (分区目录占用空间比实际空间要大: 资源文件删除后, 空间没有真正释放)

    问题说明:IDC里的一台服务器的/分区使用率爆满了!已达到100%!经查看发现有个文件过大(80G),于是在跟有关同事确认后rm -f果断删除该文件.但是发现删除该文件后,/分区的磁盘空间压根没有释放 ...

  6. 本地管理表空间(LMT)与自动段空间管理(ASSM)概念

    创建表空间时,extent management local 定义本地管理表空间(LMT),segment space management auto 定义自动段空间管理(ASSM). extent ...

  7. oracle 查询表的大小,表空间的使用情况,默认表空间

    oracle 查询表的大小,表空间的使用情况,默认表空间 oracle 查询表的大小,表空间的使用情况,默认表空间 --查看某张表占用磁盘空间大小 ( 表名大写 ) Select Segment_Na ...

  8. LOB字段存放在指定表空间 清理CLOB字段及压缩CLOB空间

     LOB字段存放在指定表空间 清理CLOB字段及压缩CLOB空间    把LOB字段的SEGMENT 存放在指定表空间.清理CLOB字段及压缩CLOB空间 1.创建LOB字段存放表空间:create ...

  9. java免费空间!最简单的openshift免费空间上传代码教程!和FTP一样简单!

    史上最简单的openshift免费空间上传代码教程!没有之一! 最近因为想弄一个免费的空间,而且最好是Java的空间,找了一大片,jsp的空间少不说,免费的更是寥寥无几. 找了一大推垃圾空间,终于让我 ...

随机推荐

  1. MySQL中的char与varchar详解

    mysql中char与varchar的区别: char:定长,效率高,一般用于固定长度的表单提交数据存储  :例如:身份证号,手机号,电话,密码等 varchar:不定长,效率偏低 1.varchar ...

  2. css cursor效果图

    效果图: <!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset=& ...

  3. Go语言 - 流程控制 if else | for | switch case

    流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用的流程控制: if | for | switch | goto// switch ...

  4. TensorflowTensorflow细节-P158-slim的使用

    slim的使用 从以下细节可以看出先使用slim = tf.contrib.slim要回用,剩下的看看以下代码就懂了 import tensorflow as tf slim = tf.contrib ...

  5. 微信网站防屏蔽防红的措施以及微信域名检测API等工具的技术原理

    为什么关心这种技术?因为我经常听到身边搞微商.搞微信项目的朋友都在叫苦连天,由于微信域名屏蔽.微信域名被拦截.弄得他们尸横遍野,损失的连过年回家的路费都没了,曾经的叱咤风云一下变成了今日的倒亏损.腾讯 ...

  6. luogu 2592 区间dp

    \(f_{i, j, a, b}\) 表示当前一共有 \(i\) 人排队, \(j\) 名男生,男生数目 - 女生数目为 \(a\), 女生数目 - 男生数目为 \(b\),\(a, b >= ...

  7. 第02组 Alpha冲刺(3/6)

    第02组 Alpha冲刺(3/6)   队名:無駄無駄组长博客作业博客 组员情况 张越洋 过去两天完成了哪些任务 摸鱼 提交记录(全组共用) 接下来的计划 沟通前后端成员,监督.提醒他们尽快完成各自的 ...

  8. [洛谷 P4556] 雨天的尾巴

    传送门 Solution 线段树合并的入门题 lca可以在dfs的时候离线求(用并查集) 更新的点有每条链的两个端点,它们的lca和dad[lca] 为了节省空间,lca和dad[lca]的更新可以先 ...

  9. C#题(子文章)(持续更新)

    -----> 总文章 入口 文章目录 [-----> 总文章 入口](https://blog.csdn.net/qq_37214567/article/details/90174445) ...

  10. ls命令的简单实现

    ls命令的简单实现 目标:简单的实现ls命令 实现的mic_ls命令主要功能 1.循环遍历目录 2.列出目标目录所有的子目录和文件 3.列出文件的文件权限,所有者,文件大小等详细信息 参数 -r 循环 ...