我正在从 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/