最近,我的Oracle 9i数据库从一个站点移动到另一个站点,从那时起,我一直无法使用瘦JDBC驱动程序进行查询。
此数据库一直在异地并通过VPN连接 - 速度不是很快但可行。由于移动查询被发送到数据库,标题可能会返回然后停止。在v $ session中,我的会话是"不活动"但查询仍然列为存在。这将几乎无限期地挂起 - 我已经看到它在9小时内没有运动,回滚错误或其他任何事情。
当我从Oracle 11的JDBC驱动程序切换到Oracle 9驱动程序时,性能略有提高。我已经尝试过许多防火墙提示'在Oracle网站上(连接字符串更改和JDBC属性)但无济于事。
确实产生影响的一件事是将fetchRow大小更改为1 - 仍然非常慢,但某些查询可能会得到一些结果。
查询不是密集的 - 即使PK查找失败,表中有40个小文本列。在SqlPlus上正常工作。
我正在使用Linux(centOS和Fedora),尝试过JDK 7和8,瘦JDBC驱动程序版本9,11和12并使用SquirrelSQL,SQLWorkbench / J,SQLLine,groovy脚本和grails ap都具有相同的结果
答案 0 :(得分:0)
事实证明,在任何正常音量下都会导致重大数据包丢失,从而导致其中一个ack / synack丢失并无限期挂起查询。
通过将MTU降至600(从操作系统默认值1500)来“解决”这个问题。妥协妥协,但正在发挥作用。