功能的逻辑很简单,大概是这样的:
- 用户提交请求后
- 后端执行
select count(*) from xxx语句 - 返回响应
日志大概是这样的:
2022-10-13 09:58:56,303 INFO [xxx] - <开始执行 COUNT> -- 出现问题的请求开始
... --期间有很多其它请求可以正常处理
2022-10-13 10:11:11,839 INFO [xxx] - <COUNT 执行完毕> -- 出现问题的请求结束(被阻塞了 10 多分钟,最终请求还是执行完了)
2022-10-13 10:11:11,886 INFO [xxx] - <开始执行 COUNT> -- 用户提交的第二次请求开始
2022-10-13 10:11:12,745 INFO [xxx] - <COUNT 执行完毕> -- 用户提交的第二次请求结束 (只用了 1 秒)
- 这几条 count(*)语句只需要 1 秒左右就可以执行完。
- 请求被阻塞期间,其它请求是可以正常处理的,应该跟 JVM 无关。
- 数据库用的是 Oracle 。
- 想问下可能导致这类问题出现的原因?或者排查方向?