ORA-03113执行sql查询时

Rav*_*pta 8 oracle query-optimization ora-03113

我有一个400行的SQL查询,它会在30秒内抛出异常

ORA-03113:通信信道上的文件结束

以下是需要注意的事项:

  1. 我将超时设置为10分钟
  2. 删除时有一个最后一个条件可以解决此错误.
  3. 这个错误最近才在我分析索引时出现.

令人不安的情况是这样的:

AND UPPER (someMultiJoin.someColumn) LIKE UPPER ('%90936%')
Run Code Online (Sandbox Code Playgroud)

所以我的假设是,查询从服务器端被终止,显然是因为它被识别为资源占用.

我的假设是否合适?我该如何解决这个问题呢?

编辑:我试图得到错误查询的解释计划,但解释计划查询也给我一个ORA-03113错误.我知道我的查询不是很高效,但为什么这是ORA-03113错误的原因.我试图从toad运行查询并且没有生成警报日志或跟踪,我的db版本是 Oracle9i企业版版本9.2.0.7.0 - 生产

Dav*_*sta 5

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

您说从查询中删除一个条件会导致问题消失.没有这个条件,查询需要多长时间才能运行?您是否检查了两个版本的查询的执行计划,以查看添加该条件是否导致选择了一些低效的计划?

  • +1 - 首先检查跟踪和警报日志. (2认同)

小智 0

这意味着您已断开连接。这不太可能是因为资源消耗过多。

我已经看到到数据库的连接是通过 NAT 运行的,并且由于没有流量,它会关闭隧道,从而断开连接。一般来说,如果您使用连接池,您将不会得到这个。