You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle UPDATE查询执行缓慢问题排查求助

Oracle UPDATE查询卡顿问题排查

问题现象

我们有一条逻辑简单的Oracle UPDATE查询执行时出现卡顿:

UPDATE BRI_PRINT_DOCUMENT pd
SET PRINT_STATUS_ID = 6
WHERE pd.PRINT_STATUS_ID = 1
  AND  pd.DOCUMENT_TYPE_ID IN (
    SELECT jd.DOCUMENT_TYPE_ID
    FROM BRI_JOBTYPE_DOCUMENTTYPE jd
    WHERE jd.JOB_TYPE_ID = 2);
COMMIT;

尝试了改写后的UPDATE语句,卡顿问题依然存在:

UPDATE (SELECT *
  from BRI_PRINT_DOCUMENT PD
  INNER JOIN BRI_JOBTYPE_DOCUMENTTYPE BJD
  on PD.DOCUMENT_TYPE_ID = BJD.DOCUMENT_TYPE_ID
  AND JOB_TYPE_ID = 2
  AND PRINT_STATUS_ID = 1) joined
SET joined.PRINT_STATUS_ID = 6;

奇怪的是,对应的SELECT查询执行速度很快:

SELECT * FROM BRI_PRINT_DOCUMENT pd
WHERE PRINT_STATUS_ID = 1
AND  pd.DOCUMENT_TYPE_ID IN (
    SELECT jd.DOCUMENT_TYPE_ID
    FROM BRI_JOBTYPE_DOCUMENTTYPE jd
    WHERE jd.JOB_TYPE_ID = 2);

额外异常细节

  • 我和同事使用SQL Developer、DataGrip执行该UPDATE时均出现卡顿,但数据库管理员用Toad执行完全相同的查询却正常完成。
  • 数据库无表锁,管理员未收到任何故障告警。
  • 开发库数据量很小,仅有数千条记录。

执行计划

执行计划截图

疑问

是什么原因导致了这个问题?

内容的提问来源于stack exchange,提问作者Trace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:35:22