Oracle临时库数据数据量过大,Oracle临时表空间过大问题解决
查询数据库服务器时,发现数据库服务器磁盘使用空间达到了98%,分析总共的数据文件也不可能达到如此大,经过查询发现原来临时表空间的使用情况达到了 32G,导致磁盘空间使用紧张。搜索了相应的文档与资料后,查出临时表空间主要使用在:
- 索引创建或重创建。
- ORDER BY or GROUP BY (这个是‘罪魁祸首’)
- DISTINCT 操作。
- UNION & INTERSECT & MINUS - Sort-Merge joins. - Analyze 操作
- 有些异常将会引起temp暴涨(这个也很有可能)
下面是重新创建一个临时表空间,把原来的默认临时表空间drop掉(包括里面的临时数据文件)再重新建立
SQL> create temporary tablespace temp2
2 tempfile '/home/oracle/oracle/product/10.2.0/oradata/hatest/temp02.pdf' size 512M reuse
3 autoextend on next 640k maxsize unlimited;
Tablespace created.
SQL> alter database default temporary tablespace temp2;
Database altered.
SQL> drop tablespace temp including contents and datafiles;
Tablespace dropped.
(注意:由于临时表空间的数据文件比较大,所以这步可能会花费比较长的时间)
SQL> create temporary tablespace temp
2 tempfile '/home/oracle/oracle/product/10.2.0/oradata/hatest/temp01.pdf' size 512M reuse
3 autoextend on next 640K maxsize unlimited;
Tablespace created.
SQL> alter database default temporary tablespace temp;
Database altered.
SQL> drop tablespace temp2 including contents and datafiles;
Tablespace dropped.
SQL> exit
以上的方法只是暂时释放了临时表空间的磁盘占用空间,是治标但不是治本的方法,真正的治本的方法是找出数据库中消耗资源比较大的sql语句,然后对其进行优化处理。下面是查询在sort排序区使用的执行耗时的SQL
Select se.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value))as Space,tablespace,segtype,sql_text
from v$sort_usage su,v$parameter p,v$session se,v$sql s
where p.name='db_block_size' and su.session_addr=se.saddr and s.hash_value=su.sqlhash and s.address=su.sqladdr
order by se.username,se.sid
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/665328/viewspace-571472/,如需转载,请注明出处,否则将追究法律责任。
Oracle临时库数据数据量过大,Oracle临时表空间过大问题解决相关推荐
- oracle 磁盘不分区吗,LINUX停ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路...
LINUX下ORACLE软件.数据文件等所在的磁盘分区空间不足的解决思路 虚拟机中的ORACLE运行的久了,归档.数据文件不断增长,原来安装ORACLE的分区空间不足. 此时可以重新向虚拟机增加一块硬 ...
- oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决
在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...
- oracle同库复制schema,使用impdp复制oracle的schema数据迁移 | 学步园
测试环境: 源: windows 2003, oracle 10202 目标:windows 2000, oracle 10203 注:本文中所说的 schema 和 user 是一个意思. impd ...
- oracle临时表空间暴涨,如何解决Oracle临时表空间过大
方案一:增加临时表空间的大小 1.临时表空间的使用情况题 SELECT D.tablespace_name, SPACE "SUM_SPACE(M)", blocks " ...
- Oracle 跨库查询表数据(不同的数据库间建立连接)
1.情景展示 当需要从A库去访问B库中的数据时,就需要将这两个库连接起来: 两个数据库如何实现互联互通,在oracle中,可以通过建立DBLINK实现. 2.解决方案 2018/12/05 第一步:创 ...
- oracle不同库之间传送文件,EXCEL与ORACLE间的数据互传法数据库 -电脑资料
众所周知,MicrosoftExcel能很直观而方便地进行数据输入,统计,生成图表,但它的数据管理能力有限,对大量的数据查询能力不足,如果利用它数据计算方面的优点和大型 数据库 ORACLE的数据查询 ...
- 怎么导出oracle库,【DG】怎么从Oracle备库导出数据
1.使用exp导出 2.使用expdp导出 ====================================================== 若使用exp导出,则可以直接在备库执行导出动作 ...
- 接口数据量太大,导致内存溢出,解决办法
通常我们使用接口调用数据总是返回一段我们需要的信息,或者是json 格式信息,通过接收将数据保存到程序当中,再对接收到的数据进行转换成对应的模型格式 .目前遇到的问题是接收的数据量过于巨大,导致完整接 ...
- oracle跨库插入数据,Oracle跨数据库查询并插入实现原理及代码
工作中需要从一个数据库中的表GIS_WEICHAI_DATA_1S中的数据导入到另个一数据库的表GIS_WEICHAI_DATA_1S中,数据库服务器都是远程的!我的实现方法是在本地使用PL/SQL操 ...
最新文章
- java socket modbus_Java modbus tcp 编程有懂得吗?给个示例看看。。。十分感谢。
- 青岛西海岸新区将建大数据交易中心
- 动态规划 - 买卖股票的最佳时机 III
- PHP中exec()函数执行系统命令失败
- Mysql的“Limit”操作
- SylixOS网络协议栈---Lwip协议栈之ARP表
- MyEclipse + Tomcat 热部署问题
- linux识别设备插槽,你如何确定linux计算机的CPU插槽类型?
- linux vi只写入1个字节,关于linux命令的说明(这是一个命令集)
- unity安装后续添加模块
- 人机交互(HCI)界面设计(笔记)
- 算法导论—分治策略(C语言)
- 自控原理入门详解**********
- 电影《战狼2》的可视化分析
- du -sh * 与 ls -lh 显示文件大小不一样
- KaTeX数学公式基础
- 学习Linux内核必读的五本书
- 期货交易怎么买空(期货怎么买做空)
- 使用javac编译单个Java文件
- 原画还是3D建模?业内发展趋势,你来权衡