merge into 的数据更新问题

usernamezero 2009-02-18 08:41:24
提间:merge into 的效率真的是很高吗?我的40成条记录更新怎么这么慢呢?当然我的字段25个多点。
但是老感觉也不能慢到这个程序吧
解决,看如下例子
CREATE OR REPLACE PROCEDURE PR_SB_MIDDLE_MDM IS
BEGIN
MERGE INTO MDM_PSN M
USING SB_PSN S ON(M.SB_PSN_ID=S.AAC001)
WHEN MATCHED THEN
UPDATE SET M.SB01=s.aac001,M.SB02=s.aac003,M.SB04=s.aac004,M.SB05=s.aac006,M.SB06=s.aac002,
M.SB08=s.aab001,M.SB10=s.aac008,M.SB11=s.aac017,M.SB12=s.aac005,M.SB13=s.aac009,
M.SB14=s.aac023,M.SB15=s.cac008,M.SB16=s.aac018,M.SB17=s.aac019,M.SB18=s.aac011,
M.SB19=s.aac007,M.SB20=s.cac009,M.SB21=s.aac020,M.SB22=s.aab001,M.SB23=s.akc020,
M.SB24=s.aae007,M.SB25=s.aae005,M.SB26=s.aac016,M.SB27=s.aac014,M.SB28=s.aac015
WHEN NOT MATCHED THEN
INSERT (M.SB01,M.SB02,M.SB04,M.SB05,M.SB06,M.SB08,M.SB10,M.SB11,M.SB12,M.SB13,
M.SB14,M.SB15,M.SB16,M.SB17,M.SB18,M.SB19,M.SB20,M.SB21,M.SB22,M.SB23,
M.SB24,M.SB25,M.SB26,M.SB27,M.SB28)
VALUES(S.aac001,S.aac003,S.aac004,S.aac006,S.aac002,S.aab001,S.aac008,S.aac017,
S.aac005,S.aac009,S.aac023,S.cac008,S.aac018,S.aac019,S.aac011,S.aac007,
S.cac009,S.aac020,S.aab001,S.akc020,S.aae007,S.aae005,S.aac016,S.aac014,
S.aac015);
COMMIT;
END PR_SB_MIDDLE_MDM;
应该怎样让他提高效率啊
...全文
324 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
usernamezero 2009-02-18
  • 打赏
  • 举报
回复
上边的那个 proc 有没有人能给改成个用游标来循环的方式,谢谢了,游标我不懂,谢谢了
eviler 2009-02-18
  • 打赏
  • 举报
回复
这玩意不懂
Andy__Huang 2009-02-18
  • 打赏
  • 举报
回复
在你做这个操作时,是不是有其他事务同时在运行?
两个表的数据量是不是很大?

建议你对MDM_PSN.SB_PSN_ID和SB_PSN.AAC001分别建立索引,速度应该可以提高

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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