因实际查询需要,系统设置40个线程进行数据查询,每个线程查询的时间会很长,都需要几十分钟的查询时间,当查询时间运行到一定的时间后,有些线程就卡在statement.executeQuery(),用jvisuallvm查看线程的执行点停留在java.net.SocketInputStream.socketRead0,再查看ORALCE的V$SESSION,这些线程提交的查询都已执行完成了,TOMCAT日志也没有任何异常记录,各位大神帮帮忙,看下问题会出在哪里。
6条回答
- 38646221 2018-06-06 05:32关注
这个不关oracle底层的事情,并发查询是数据库的最基本功能之一。估计是你用ODBC API方式不对或者你的ODBC不支持数据库的多线程处理。从你的描述来看,串行可以,并行不行,应该是你用的API库不支持多线程并行。
解决 无用评论 打赏 举报
悬赏问题
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题
- ¥15 C#算法问题, 不知道怎么处理这个数据的转换
- ¥15 YoloV5 第三方库的版本对照问题
- ¥15 请完成下列相关问题!