【问题标题】:ORA-56721: I/O data limit exceeded - session terminatedORA-56721: 超出 I/O 数据限制 - 会话终止
【发布时间】:2017-04-29 18:29:52
【问题描述】:

我正在从我的 Java 程序中执行 SQL 选择查询以获取记录,有时该查询运行正常但有时会出现如下错误。

我正在使用 Java 1.6 和 Oracle 12c 数据库。

Exception :: ORA-56721: I/O data limit exceeded - session terminated

是因为插入(来自其他程序)并选择同时在同一张表上运行的两个查询吗?

我试图在谷歌中搜索解决方案,但结果如下

ORA-56721: I/O data limit exceeded - session terminated

Cause: The Resource Manager SWITCH_IO_MEGABYTES limit was exceeded.

Action: Reduce the complexity of the update or query, or contact your database administrator for more information.

有没有办法从 Java 端处理这个异常?在程序执行期间增加 JVM 的堆内存大小是否有助于解决这个问题?

【问题讨论】:

  • 此错误是 Oracle 内部错误。您在 Java 中所做的任何事情都不会改变它。你可能会在dba.stackexchange.com 上得到更好的答案。祝你好运。

标签: java oracle jdbc plsql


【解决方案1】:

您的会话正在被终止,因为它使用了太多资源并影响了系统的其余部分(即,它是磁盘占用)。解决方案不是让您的查询消耗更多资源,而是重构您的查询以提高效率。

如果它正在做的工作很密集,您可能需要考虑将单个查询分成多个步骤。

【讨论】:

    【解决方案2】:

    我的 Application 有问题的原因,它在 DB 端添加了一个名为 Oracle Resource Manager 的新功能,它基本上限制了非应用程序用户的基础架构资源(磁盘 IO、内存、CPU)。我正在使用非应用程序用户进行查询。

    【讨论】:

      猜你喜欢
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 2016-05-02
      • 2018-10-06
      • 2020-05-13
      相关资源
      最近更新 更多