oracle - 执行SQL查询时出现ORA-03113

标签 oracle query-optimization ora-03113

我有一个400行的sql查询,它在30秒内引发异常

ORA-03113: end-of-file on communication channel



以下是注意事项:
  • 我已将超时设置为10分钟
  • 将其删除后可以解决此错误,这是最后一种情况。
  • 仅当我分析索引时才出现此错误。

  • 令人不安的情况是这样的:
    AND UPPER (someMultiJoin.someColumn) LIKE UPPER ('%90936%')
    

    因此,我的假设是,该查询显然已从服务器端终止,因为它被标识为资源浪费。

    我的假设合适吗?我应该如何解决这个问题?

    编辑:我试图获取错误查询的解释计划,但解释计划查询也给我一个ORA-03113错误。我了解我的查询的性能不是很高,但是为什么这应该成为ORA-03113错误的原因。我正在尝试从toad运行查询,并且没有生成警报日志或跟踪,我的数据库版本是
    Oracle9i Enterprise Edition版本9.2.0.7.0-生产

    最佳答案

    导致此错误的一个可能原因是服务器端的线程崩溃。检查Oracle服务器是否已生成任何跟踪文件,或在其警报日志中记录了任何错误。

    您说从查询中删除一个条件会导致问题消失。在没有该条件的情况下,查询要花多长时间?您是否检查了两个版本的查询的执行计划,以查看添加该条件是否导致选择了一些效率低下的计划?

    关于oracle - 执行SQL查询时出现ORA-03113,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3350577/

    相关文章:

    oracle - Entity Framework 无法为 Oracle 存储过程提供 "add function import"

    java - 来自 weblogic 的数据库连接

    sql-server - 我应该垂直分割 table 吗?

    sql - Oracle 中可以连接的表的数量是否有限制?

    oracle - 使用 FOR UPDATE SKIP LOCKED 打开 OUT SYS_REFCURSOR 时出错

    sql - 检查给定的 DB 对象是否在 Oracle 中使用?

    sql - Oracle OR 条件使查询非常慢

    MySQL 查询优化,用于按日期和状态对项目进行排序

    php - 在达到大型 MySQL 数据库(例如 100 万行)后,提供 LIMIT 是否有助于优化?