问题来源:
在执行一个分析查询时,出现磁盘IO错误,经查实为temp表空间耗尽。查询分为3个union all,每个union all连接7张表,连接的表的容量都很大,2张千万级,其他百万级。
问题分析:
首先明确,问题肯定是出在temp表空间上,为什么temp表空间消耗如此之快,而且无法释放。消耗temp表空间的操作包括:
1.order by,group by(主要是磁盘排序)
2.索引的创建
3.distinct
4.union & intersect & minus sort-merge joins
5.分析操作
6.sql的异常终止以及一些其他异常也会导致temp表空间的无法释放。
7.查询的表没有建立索引,oracle会把整张表复制到temp表空间中。
根据以上的情况,由于程序中没有使用排序和分组,也没有使用distinct,而union的时候也是使用的union all不会导致temp表空间的使用问题。
问题排查
先检查那两张千万级的表,没有建立索引。后来得知因为是抓取的远程数据库的数据,为了插入速度快,而没有建立索引。建立索引后,表空间占用锐减,但是还是有部分占用,切在sql执行完后无法释放。后来查询oracle官方解释为,clob对象占用的临时表的表空间后不会释放。
分享到:
相关推荐
在Oracle数据库中,表空间是存储数据的基本单位,它由一个或多个数据文件组成,用于存储数据库对象如表、索引等。 **1. 表空间维护** 1.1.1.1 表空间测算 为了监控和规划表空间的使用,DBA可以使用SQL查询来获取...
oacle数据库 磁盘空间大小检测,及扩容
索引可以加速数据查询,但也会占用额外的存储空间。 6. **安全性**:Oracle 11g提供了一套完整的安全机制,包括用户权限管理、角色、表级别的权限以及数据加密等。理解如何合理分配权限,确保数据安全是数据库管理...
oacle-10203事件的设置与查看
1. **第11章 物理存储结构**:本章深入讲解了Oracle数据库的物理存储层次,包括数据块、操作系统块、段、表空间和重做日志文件等。数据块是Oracle I/O的基本单位,包含了表、索引等数据的存储单元。表空间是由多个...
Oracle ODAC(Oracle Data Access Components)是Oracle公司提供的一个数据访问组件集,主要用于.NET开发者在非Oracle客户端环境中连接和操作Oracle数据库。这个组件包含了Oracle Provider for .NET、Oracle Client...
1. 确保备份目标目录有足够的空间,避免备份过程中因磁盘空间不足导致的失败。 2. 定期检查备份文件的完整性,以防数据损坏。 3. 了解如何使用这些备份进行恢复,这通常涉及到使用`RESTORE`和`RECOVER`命令。 4. 在...
4. **表的创建与操作**:学习如何使用CREATE TABLE语句创建数据库表,以及如何使用ALTER TABLE修改表结构,DROP TABLE删除表,以及TRUNCATE TABLE清空表。 5. **索引**:索引可以加速数据检索。了解如何创建单列...
4. **kernel.sem**: 这是一个复合参数,用于设置信号量设置,包括semmsl(最大信号量集数量),semmns(系统总的信号量数量),semopm(每个信号量集中最大操作数),以及semmni(系统中信号量集的最大数量)。...
游标用于遍历查询结果集,类似于Java中的iterator迭代器。它允许逐行遍历查询返回的多行数据,对每一行数据进行操作。 五、异常的处理 异常处理用于捕获程序执行中出现的错误,并进行处理。可以使用when...then......
如果在安装过程中遇到问题导致无法成功安装,可以直接卸载并重新尝试。卸载Oracle 11g的方法可以参考其他教程,例如百度经验中的相关链接。 总的来说,安装Oracle 11g在Windows 8.1上虽然涉及多个步骤,但只要按照...
知识点1:Oracle RAC双节点安装前的环境准备 在进行Oracle RAC双节点安装之前,需要准备两个CentOS 5.6(64位)操作系统的...以上就是有关linux5.4+oacle10gr2_rac双节点安装文档的知识点,希望对您的工作有所帮助。
3. 数据绑定:Form中的控件可以绑定到数据库表或视图的字段,实现数据的动态显示和更新。 三、Oracle Form开发流程 1. 创建新表单:在Form Builder中,选择适当的表单模板,然后添加所需的控件和布局。 2. 编写PL...
4. **数据绑定**:学习如何将表单中的控件与数据库中的表或视图进行关联,实现数据的显示和编辑。 5. **事件和触发器**:事件如按钮点击、字段更改等,触发器则是在特定事件发生时执行的PL/SQL代码段。 6. **表单...
Oracle归档日志是数据库运行过程中产生的事务日志的备份,用于在发生故障时进行数据恢复。当数据库在归档模式下运行时,每次检查点都会生成新的归档日志...这样可以在释放存储空间的同时,确保数据的安全性和可恢复性。
在IT行业中,数据库管理和性能优化是一项至关重要的任务。Oracle数据库提供了一整套强大的性能分析工具,其中RDA(Remote Diagnostic Agent)是其中的关键组件。RDA优化工具集合了AWR(Automatic Workload ...
以课堂互动模式,生动形象的由浅入深的学习Oracle!
考虑`scott.emp`表中的数据,我们可以使用`RANK()`函数来找出每个部门中薪资最高的员工: ```sql SELECT empno, deptno, sal, RANK() OVER (PARTITION BY deptno ORDER BY sal DESC NULLS LAST) AS rank FROM emp;...