整表10条数据,oracle update执行不动,确认表无锁。

尼古拉希 发布于 2017/11/27 21:49
阅读 211
收藏 0

该段sql来自一存储过程,且在十几个线上环境正常使用,整表10条数据,去除in可执行;括号内改成定值可执行;括号内单独执行无误。确认表无锁,执行计划正常,表也重建过,服务也重启过。

UPDATE LEG_BASE_INFO
   SET IMPORT_CHECK_FLAG = '0',
       CHECK_ERR_MSG     = ' 验证规则代码:1006;'
 WHERE IMPORT_ID = '1'
   AND UNIFIED_CODE IS NOT NULL
   AND IMPORT_CHECK_FLAG = '9'
   AND UNIFIED_CODE IN (SELECT UNIFIED_CODE
                          FROM LEG_BASE_INFO
                         WHERE IMPORT_ID = '1'
                           AND UNIFIED_CODE IS NOT NULL
                         GROUP BY UNIFIED_CODE
                        HAVING COUNT(*) > 1);

 

加载中
0
wad12302
wad12302

in 里面执行的是同一个表,这个select 嵌套起来可能效率不行,

改变思路吧

返回顶部
顶部