sql语句如下:
UPDATE org_group2_tmp p
set p.parent_uuid = (select b.group_uuid
from org_group2_bak b, org_group2_tmp s
where b.group_id = s1.group_id and s.group_uuid = p.parent_uuid)
where exists (select 1
from org_group2_bak b, org_group2_tmp s
where b.group_id = s1.gid and s.group_uuid = p.parent_uuid)org_group2_tmp和org_group2_bak表的数据都为8万多条上面的sql执行了几分钟还没结束,请问上面的sql那里导致性能如此的差,能优化吗?
UPDATE org_group2_tmp p
set p.parent_uuid = (select b.group_uuid
from org_group2_bak b, org_group2_tmp s
where b.group_id = s1.group_id and s.group_uuid = p.parent_uuid)
where exists (select 1
from org_group2_bak b, org_group2_tmp s
where b.group_id = s1.gid and s.group_uuid = p.parent_uuid)org_group2_tmp和org_group2_bak表的数据都为8万多条上面的sql执行了几分钟还没结束,请问上面的sql那里导致性能如此的差,能优化吗?
解决方案 »
- select结果集作为存储过程入参的问题
- oracle数据库net manager 打开为什么每次弹打开网络配置
- 请问一个组合sql语句写法??
- 有懂Oracle安装和系统服务管理的没?急求建议!!!
- 键入svrmgrl提示ora-12560 tns适配器错误
- 一个关于安装oracle数据库的问题?
- 请教:Oracle的同步复制技术。
- 这个语句怎么写?
- 急!!!数据快照问题,问能不能在建立快照的过程中,关联几个表的数据一并拿过来
- 紧急问题!!!!!!!!!!!!!!!!1
- 请教大虾们!VB中怎么对date和timestamp两种时间类型进行比较?在线急等!!!!
- 求救 这个sql怎么修改 急!!!!!!!
如果舍弃where exists 条件,则默认对A表进行全表
更新,我只想更新满足条件的那部分
using org_group2_bak b
on (p.group_id = b.group_id and p.group_uuid = b.parent_uuid)
when matched then update set p.parent_uuid = b.group_uuid;