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

标签 java oracle jdbc plsql

我正在从 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 堆内存大小是否有助于解决此问题?

最佳答案

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

如果它正在执行的工作非常密集,您可能需要考虑将单个查询分解为多个步骤。

关于java - ORA-56721 : I/O data limit exceeded - session terminated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41142389/

相关文章:

java - "dirty reads"在 Terracotta 中使用安全吗?

java - 如果不需要@Override,如何强制Java编译器出错

java - 在Spring JDBC中执行数据库 session 初始化SQL

sql - ORA-01791 : not a SELECTed expression

Node.js 和 node-oracle : Problems connecting to Oracle database

java - Persistence.xml 配置不正确

mysql - 我可以在 JDBC 准备好的语句中替换除参数之外的其他内容吗?

java - 枚举中的标准 SQLState

java - 如何在 Gradle 中编写此 Maven 排除代码?

java - Drools 在 ant 构建期间无法解析 ObjectType