查询数据库服务器时,发现数据库服务器磁盘使用空间达到了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临时表空间过大问题解决相关推荐

  1. oracle 磁盘不分区吗,LINUX停ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路...

    LINUX下ORACLE软件.数据文件等所在的磁盘分区空间不足的解决思路 虚拟机中的ORACLE运行的久了,归档.数据文件不断增长,原来安装ORACLE的分区空间不足. 此时可以重新向虚拟机增加一块硬 ...

  2. oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决

    在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...

  3. oracle同库复制schema,使用impdp复制oracle的schema数据迁移 | 学步园

    测试环境: 源: windows 2003, oracle 10202 目标:windows 2000, oracle 10203 注:本文中所说的 schema 和 user 是一个意思. impd ...

  4. oracle临时表空间暴涨,如何解决Oracle临时表空间过大

    方案一:增加临时表空间的大小 1.临时表空间的使用情况题 SELECT D.tablespace_name, SPACE "SUM_SPACE(M)", blocks " ...

  5. Oracle 跨库查询表数据(不同的数据库间建立连接)

    1.情景展示 当需要从A库去访问B库中的数据时,就需要将这两个库连接起来: 两个数据库如何实现互联互通,在oracle中,可以通过建立DBLINK实现. 2.解决方案 2018/12/05 第一步:创 ...

  6. oracle不同库之间传送文件,EXCEL与ORACLE间的数据互传法数据库 -电脑资料

    众所周知,MicrosoftExcel能很直观而方便地进行数据输入,统计,生成图表,但它的数据管理能力有限,对大量的数据查询能力不足,如果利用它数据计算方面的优点和大型 数据库 ORACLE的数据查询 ...

  7. 怎么导出oracle库,【DG】怎么从Oracle备库导出数据

    1.使用exp导出 2.使用expdp导出 ====================================================== 若使用exp导出,则可以直接在备库执行导出动作 ...

  8. 接口数据量太大,导致内存溢出,解决办法

    通常我们使用接口调用数据总是返回一段我们需要的信息,或者是json 格式信息,通过接收将数据保存到程序当中,再对接收到的数据进行转换成对应的模型格式 .目前遇到的问题是接收的数据量过于巨大,导致完整接 ...

  9. oracle跨库插入数据,Oracle跨数据库查询并插入实现原理及代码

    工作中需要从一个数据库中的表GIS_WEICHAI_DATA_1S中的数据导入到另个一数据库的表GIS_WEICHAI_DATA_1S中,数据库服务器都是远程的!我的实现方法是在本地使用PL/SQL操 ...

最新文章

  1. java socket modbus_Java modbus tcp 编程有懂得吗?给个示例看看。。。十分感谢。
  2. 青岛西海岸新区将建大数据交易中心
  3. 动态规划 - 买卖股票的最佳时机 III
  4. PHP中exec()函数执行系统命令失败
  5. Mysql的“Limit”操作
  6. SylixOS网络协议栈---Lwip协议栈之ARP表
  7. MyEclipse + Tomcat 热部署问题
  8. linux识别设备插槽,你如何确定linux计算机的CPU插槽类型?
  9. linux vi只写入1个字节,关于linux命令的说明(这是一个命令集)
  10. unity安装后续添加模块
  11. 人机交互(HCI)界面设计(笔记)
  12. 算法导论—分治策略(C语言)
  13. 自控原理入门详解**********
  14. 电影《战狼2》的可视化分析
  15. du -sh * 与 ls -lh 显示文件大小不一样
  16. KaTeX数学公式基础
  17. 学习Linux内核必读的五本书
  18. 期货交易怎么买空(期货怎么买做空)
  19. 使用javac编译单个Java文件
  20. 原画还是3D建模?业内发展趋势,你来权衡

热门文章

  1. insert_text
  2. Linux基础——怎么样用 TeamViewer 和 VNC 从远程控制电脑
  3. mfc 对话框应用程序 如何利用按钮弹出另一对话框
  4. 两个实际任务掌握图像分类【Keras】(转)
  5. Dedecms V5.7后台的两处getshell
  6. 11.2 正睿停课训练 Day15
  7. 八 Civil3d常用显示样式的编辑与创建 ----点标签样式2
  8. Linux恢复删除的文件
  9. Word 2013 使用技巧
  10. 如何使用ITEXTSHARP将HTML代码字符串写进PDF