- 浏览: 543168 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (340)
- Spring (4)
- Hibernate (2)
- Linux (34)
- Oracle (145)
- Eclipse (1)
- UML (1)
- HTML&&JAVASCRIPT (11)
- JAVA (33)
- 设计模式 (1)
- 版本控制 (1)
- wrap框架 (3)
- IBATIS (5)
- Ruby (1)
- DWR (1)
- MINA (11)
- JBPM (2)
- 缓存技术 (4)
- 网络 (3)
- 应用服务器 (1)
- GWT (5)
- 杂谈 (2)
- ICE (4)
- XML (2)
- ArcGis (2)
- Flex (8)
- junit单元测试 (1)
- SNMP (1)
- 存储 (1)
- office (1)
- MongoDB (0)
- Greenplum (3)
- 管理点滴 (1)
- C++ (6)
- 网络入门 (3)
- Tomcat (7)
- JMX (0)
- webservice (1)
- Oracle的10046事件 (1)
- Library cache内部机制详解 (1)
- expdp通过dblink来导入 (1)
最新评论
-
yuanliangding:
有没有关于mock的更多知识。
基于mock对象和JUnit框架简化Spring Web组件单元测试 -
saup007:
ssh端口不是22,怎么搞呢?
Greenplum 学习笔记 -
springmvc-freemarker:
java开源项目源码实例下载
Apache上全部JAVA开源项目简介 -
bobbell:
哇塞,你真厉害,整理的非常全面。我是一个java barcod ...
Greenplum 学习笔记 -
wsj55133245513324:
这不是bug,你将日志级别从debug提升到INFO 就好了 ...
Spring,smppapi,apache mina, ssl快速实现安全的smpp(5)
ORACLE 临时表空间使用率过高的原因及解决方案
2009-11-26 16:49
ORACLE 临时表空间使用率过高的原因及解决方案(2009-11-14 19:59:02)
在数据库的日常学习中,发现公司生产数据库的默认临时表空间temp使用情况达到了30G,使用率达到了100%; 待调整为32G后,使用率还是为100%,导致磁盘空间使用紧张。根据临时表空间的主要是对临时数据进行排序和缓存临时数据等特性,待重启数据库后, temp会自动释放。于是想通过重启数据库的方式来缓解这种情况,但是重启数据库之后,发现临时表空间temp的使用率还是100%,一点没变。虽然运行 中应用暂时没有报什么错误,但是这在一定程度上存在一定的隐患,有待解决该问题。由于临时表空间主要使用在以下几种情况: 5、Analyze 操作; Oracle临时表空间暴涨的现象经过分析可能是以下几个方面的原因造成的: 通过查询相关的资料,发现解决方案有如下几种: NAME SQL> select username,temporary_tablespace from dba_users; 1.创建中转临时表空间 MAXSIZE UNLIMITED; UNLIMITED; 以上的方法只是暂时释放了临时表空间的磁盘占用空间,是治标但不是治本的方法,真正的治本的方法是找出数据库中消耗资源比较大的sql语句,然后对其进行优化处理。下面是查询在sort排序区使用的执行耗时的SQL: Select se.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value))as Space,tablespace,segtype,sql_text 二、修改参数(这个方案紧适用于8i及8i以下的版本) 三、Kill session v$session se, v$sort_usage su WHERE se.saddr = su.session_addr 注:这处方法只能针对字典管理表空间(Dictionary Managed Tablespace)。于本地管理表空间(LMT:Local Managed Tablespace),不需要整理的。9i以后只能创建本地管理的表空间。 四、使用诊断事件,也是相对有效的一种方法 1、查询事件代码 oracle临时表空间过大的原因 2009-05-12 11:22 Oracle 临时表空间主要是用来做查询和存放一些缓存的数据的,磁盘消耗的一个主要原因是需要对查询的结果进行排序,如果没有猜错的话,在磁盘空间的(内存)的分配 上,Oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB,如果还有增长,那么依此类推,临时表空间始终保持在一个 最大的上限。Oracle临时表空间暴涨的现象经过分析可能是以下几个方面的原因造成的。 总结: 如果临时表空间是temporary的,空间不会释放,只是在sort结束后被标记为free的,如果是permanent的,由SMON负责在sort结束后释放,都不用去手工释放的。查看有哪些用户和SQL导致TEMP增长的两个重要视图: v$sort_usage和v$sort_segment 对于非LMT管理方式的TEMP表空间,最简单的方法是Metalink给出的一个方法: 首先查询用户的缺省临时表空间:
重建新的临时表空间并进行切换:
如果原临时表空间无用户使用(select tablespace_name,current_users,total_blocks,used_blocks,free_blocks,free_blocks/total_blocks from v$sort_segment;),如果是文件系统可以看看文件的时间戳。 我们可以删除该表空间:(如 果原临时表空间还有用户在用,你是删除不了这个表空间的!在一次生产环境的临时表空间切换中,原临时表空间始终有用户在上面,即使我关闭了前台程序,也还 是有用户,新的临时表空间已经没有用户在使用了。我估计用户进程已经死在原临时表空间了。后来只有重新启动数据库才能把原来旧的临时表空间给删除。)
drop tablespace temp including contents and datafiles; --将表空间的内容和数据文件一起删除。 下面是查询在sort排序区使用的执行耗时的SQL: 或是: Select su.username,su.Extents,tablespace,segtype,sql_text |
发表评论
-
expdp通过dblink来导入
2011-12-14 15:01 1739create.sql: spo create.log rem ... -
Library cache内部机制详解
2011-12-14 14:55 817Library cache内部机制详解 http://www ... -
Oracle的10046事件
2011-12-14 14:53 2050Oracle的10046事件,可以跟踪应用程序所执行的SQL语 ... -
REDO LOG MEMBER STATUS 和 REDO LOG GROUP STATUS
2011-12-14 14:51 888V$LOG 中列出的是REDO LOG GROUP STA ... -
oracle的exp/imp使用方法学习(转)
2011-08-30 08:54 914exp/imp两个命令可以说是oracle中最常用的命令了 ... -
oracle几个awr报告
2011-08-09 14:25 841工作中,碰到的数据库慢的几个awr报告 -
Oracle Profile 使用详解
2011-06-21 14:41 930一、目的: Oracle系统中的profile可以用来对 ... -
ORA-27013
2011-04-13 14:25 1475很新的一个bug,看下你的 memory_target是不是& ... -
ACLE表连接方式分析及常见用法
2011-03-23 09:14 1073摘要: 针对在数据仓库 ... -
ORACLE 外部表应用
2011-03-09 14:58 1023SQL> create or replace direc ... -
How to convert a 32-bit database to 64-bit database on Linux
2011-02-18 14:09 1182How to convert a 32-bit databas ... -
expdp impdp 数据库导入导出命令详解
2011-02-16 09:10 1902一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最 ... -
Oracle手工解/锁表
2011-01-25 14:15 2393手工锁表:lock table tbl_t1 in row ... -
oracle动态性能视图
2011-01-22 10:47 820Oracle动态性能视图个人整理 -
RBO规则介绍
2011-01-17 16:45 961•无条件使用索引•使用内置的优先级别决定访问路径•比较难以 ... -
关于排序、sort_area_size、临时表空间
2011-01-13 15:30 1071简单陈述一下:针对每 ... -
创建索引ORACLE 需要做的工作
2011-01-13 14:53 1277一. 先来看一下创建索引要做哪些操作:1. 把inde ... -
表之间的连接
2011-01-13 10:42 761Join是一种试图将两个表结合在一起的谓词,一次只能连接2 ... -
重建索引的条件
2011-01-12 16:43 906如果索引存在碎片,那每个索引数据块上的索引数据就更少,会导致我 ... -
TKPROF使用学习
2011-01-10 17:38 672Tkprof工具可用来格式化sql trace产生的文件, ...
相关推荐
Oracle临时表空间的清理步骤,解决数据库临时表空间满的问题。
Oracle 临时表空间使用注意 Oracle 临时表空间使用注意 Oracle 临时表空间使用注意
oracle创建一个表空间创建临时表空间创建用户表空间资源的权限
oracle-临时表空间详细介绍oracle-临时表空间详细介绍oracle-临时表空间详细介绍oracle-临时表空间详细介绍
oracle查找定位占用临时表空间较大的SQL语句方法,包括:(1)造成临时表空间暴涨的SQL还在运行中(2)造成临时表空间暴涨的SQL已经运行过了。
不让临时表空间影响ORACLE数据库性能
Oracle释放临时表空间脚本
oracle11gR2创建临时表空间组. 使用临时表空间组而非普通的临时表空间,有如下好处: 由于SQL查询可以并发使用几个临时表空间进行排序操作,因此SQL查询很少会出现排序空间超出,避免当临时表空间不足时所引起的磁盘...
很好的,经典.创建Oracle 临时表,可以有两种类型的临时表:会话级的临时表,事务级的临时表 。
Oracle 临时表功能介绍: Oracle中的临时表是全局的,需要在数据库设计时创建完成,而不是程序使用时。每个登陆用户都使用这一个相同的临时表,但互相之间看不到彼此的数据,也就是说临时表是会话独立的。
Oracle临时表空间不足和批处理缓慢问题探讨.pdf
临时表本质上是一种cache的表现形式,Oracle的临时表都是事先建好的,一旦用了临时表,存放的是和本会话相关的数据,没有人会傻乎乎地用临时表来保存本应该共享的数据。 with子查询实际上也是用了临时表,...
临时表空间真实使用率查询sql
Oracle存储过程中使用临时表 会话级临时表 事务级临时表
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会...
oracle回滚段使用率过高之解决方法 推荐针对不同的情况有多种解决.
当这个分区的大小不足以容纳排序后所产生的记录时,数据库系统就会将临时数据存放到临时表空间 中。这就是临时表空间的来历。看起来好像这个临时表空间是个临时工,对于数据库的影响不会有多大。其实大家这是误解这...
该文档详细描述了oracle表空间已满后如何查询表空间占用情况,如何扩展表空间。
oracle创建临时表空间文档及一键导入、导出工具,非常方便
本资源着重介绍使用PL/SQL工具完成Oracle创建表空间、临时表、用户及用户授权的使用说明,供初学者参考