Sql批量更新效率问题(数据量比较多,运行效率低下)

uscool 2007-02-08 02:31:25
请教,我需要根据两张表的对比结果进行数据的批量更新(数据量比较多,运行效率低下),请教,我的这些语句如何能更好的优化以提升效率?
update Eit a set (
user_id,
full_name,
sex,
birthday,
native_place,
duty_code,
job_code,
company_id,
dept_id,
email,
mobile,
phone,
update_date,
ehr_pk_psndoc,
user_type,
his_stats
)=(
select
user_id,
full_name,
sex,
TO_DATE(birthday, 'YYYY-MM-DD'),
native_place,dutycode,
job_code,
company_id,
dept_id,
email,
mobile,
phone,
sysdate,
ehr_pk_psndoc,
'0',
'1'
from v_ehr_eit_users b
where b.user_name=a.user_name)
where exists(select 1 from v_ehr_eit_users b where b.user_name=a.user_name)
...全文
1945 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengjun19912 2007-02-09
  • 打赏
  • 举报
回复
有索引的话,绝对会影响速度的,先要去掉,之后再分段commit; 1000行或者,....行提交一次。还有就是加大回滚段空间,加大cacsh.
uscool 2007-02-08
  • 打赏
  • 举报
回复
EIT也有索引
uscool 2007-02-08
  • 打赏
  • 举报
回复
V_EHR_EIT_USERS不包含对EIT的查询,EIT有主键
doer_ljy 2007-02-08
  • 打赏
  • 举报
回复
V_EHR_EIT_USERS这个试图是不是包含对Eit的查询,并且是否更新了Eit的主键?
uscool 2007-02-08
  • 打赏
  • 举报
回复
数据量也不是很大,就是每张表万条吧,不过按照这个更新的思路来走的话,每个都要过一遍确实很费劲,能优化的吗?
tgm78 2007-02-08
  • 打赏
  • 举报
回复
多少数据量?》


数据量大的话可以考虑分段commit
uscool 2007-02-08
  • 打赏
  • 举报
回复
EIT表有索引:USER_NAME
V_EHR_EIT_USERS为视图
这个更新效率怎么能提高速度呢?
Paladin_china 2007-02-08
  • 打赏
  • 举报
回复
加索引的话会好点吧

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧