查看: 5726|回复: 20

[网络] 生产环境update语句优化

[复制链接]
论坛徽章:
3
2010新春纪念徽章
日期:2010-01-04 08:33:08数据库板块每日发贴之星
日期:2011-01-24 01:01:01ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04
发表于 2011-9-16 10:13 | 显示全部楼层 |阅读模式
hp superdome , oracle 9208

SQL> explain plan for update /*+ parallel(t,4) */in_mgr_relationship t
   set t.type = '1'
where exists (select 1
          from (select /*+ parallel(a,4)*/ distinct a.pin
                  from in_temp_tradeinfo_unpaid a
                union
                select /*+ parallel(b,4)*/ distinct b.pin from in_temp_tradeinfo_paid b ) ab
         where ab.pin = t.pin);  2    3    4    5    6    7    8  
Explained.
Elapsed: 00:00:00.03
SQL> select * from table(dbms_xplan.display);


SQL> update /*+ parallel(t,4) */in_mgr_relationship t
   set t.type = '1'
where exists (select 1
          from (select /*+ parallel(a,4)*/ distinct a.pin
                  from in_temp_tradeinfo_unpaid a
                union
                select /*+ parallel(b,4)*/ distinct b.pin from in_temp_tradeinfo_paid b ) ab
         where ab.pin = t.pin);  2    3    4    5    6    7    8  
18715321 rows updated.
Elapsed: 05:13:22.37
SQL>


数据量:
in_mgr_relationship  9000W
in_temp_tradeinfo_unpaid  4亿
in_temp_tradeinfo_paid      3亿
9000W数据中,有2000W需要被update为1

in_mgr_relationship表仅仅加载了十分之一的数据,投产时数据量为9亿,
按照update执行 05:13:22.37 计算,10倍数据量至少需要50多小时才能完成,是否能够进行调优?

暂不考虑使用其他语法替代update

[ 本帖最后由 ahwjcdz 于 2011-9-16 13:35 编辑 ]
论坛徽章:
3
2010新春纪念徽章
日期:2010-01-04 08:33:08数据库板块每日发贴之星
日期:2011-01-24 01:01:01ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04
 楼主| 发表于 2011-9-16 10:13 | 显示全部楼层 |阅读模式
hp superdome , oracle 9208

SQL> explain plan for update /*+ parallel(t,4) */in_mgr_relationship t
   set t.type = '1'
where exists (select 1
          from (select /*+ parallel(a,4)*/ distinct a.pin
                  from in_temp_tradeinfo_unpaid a
                union
                select /*+ parallel(b,4)*/ distinct b.pin from in_temp_tradeinfo_paid b ) ab
         where ab.pin = t.pin);  2    3    4    5    6    7    8  
Explained.
Elapsed: 00:00:00.03
SQL> select * from table(dbms_xplan.display);


SQL> update /*+ parallel(t,4) */in_mgr_relationship t
   set t.type = '1'
where exists (select 1
          from (select /*+ parallel(a,4)*/ distinct a.pin
                  from in_temp_tradeinfo_unpaid a
                union
                select /*+ parallel(b,4)*/ distinct b.pin from in_temp_tradeinfo_paid b ) ab
         where ab.pin = t.pin);  2    3    4    5    6    7    8  
18715321 rows updated.
Elapsed: 05:13:22.37
SQL>


数据量:
in_mgr_relationship  9000W
in_temp_tradeinfo_unpaid  4亿
in_temp_tradeinfo_paid      3亿
9000W数据中,有2000W需要被update为1

in_mgr_relationship表仅仅加载了十分之一的数据,投产时数据量为9亿,
按照update执行 05:13:22.37 计算,10倍数据量至少需要50多小时才能完成,是否能够进行调优?

暂不考虑使用其他语法替代update

[ 本帖最后由 ahwjcdz 于 2011-9-16 13:35 编辑 ]
1.GIF
论坛徽章:
249
世界杯纪念徽章
日期:2006-07-20 13:19:202012新春纪念徽章
日期:2012-01-04 11:50:442012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:232012新春纪念徽章
日期:2012-02-13 15:09:23马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14
发表于 2011-9-16 13:06 | 显示全部楼层
我家孩子也不怎么好好吃了
都要奶奶追着喂,我觉得是他们给惯坏了
在幼儿园,还不是老老实实坐小板凳上吃?

还有尿布,到自己愿意脱的时候再脱,不要强迫。。。

使用道具 举报

回复
论坛徽章:
87
IT宝贝
日期:2009-11-10 11:11:27IT宝贝
日期:2009-11-10 11:11:28
发表于 2011-9-16 15:13 | 显示全部楼层
原帖由 lodge 于 2011-9-16 13:35 发表


偶家肥肥就木有玩够的时候,有一次偶想试试让他自己说回家。
就随他在外面疯,最后小肥肥累得站都站不稳了,就是不肯回家。
第二天都木有恢复,走路摇摇晃晃的栽了好几个大跟头。
厲害啊,小肥肥。
我家的只有去公園玩時才會不願意回家
平時就在三樓平台玩,玩夠了就要自己回家了

使用道具 举报

回复
论坛徽章:
7
授权会员
日期:2010-12-06 19:50:26数据库板块每日发贴之星
日期:2011-09-03 01:01:01迷宫蛋
日期:2011-09-08 16:30:08ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04玉石琵琶
日期:2012-02-21 15:04:38最佳人气徽章
日期:2012-03-13 17:39:18
发表于 2011-9-16 10:15 | 显示全部楼层
不要并行试试

使用道具 举报

回复
论坛徽章:
3
2010新春纪念徽章
日期:2010-01-04 08:33:08数据库板块每日发贴之星
日期:2011-01-24 01:01:01ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04
 楼主| 发表于 2011-9-16 13:29 | 显示全部楼层
请问,如果使用update语法,如何能够提高效率,暂不考虑使用其他语法替代update

使用道具 举报

回复
论坛徽章:
311
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
发表于 2011-9-16 14:15 | 显示全部楼层
用游标,尝试每修改50000,提交一次。   可以先尝试测试9000W的那表,看看效率如何?

使用道具 举报

回复
论坛徽章:
7
授权会员
日期:2010-12-06 19:50:26数据库板块每日发贴之星
日期:2011-09-03 01:01:01迷宫蛋
日期:2011-09-08 16:30:08ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04玉石琵琶
日期:2012-02-21 15:04:38最佳人气徽章
日期:2012-03-13 17:39:18
发表于 2011-9-16 10:15 | 显示全部楼层
不要并行试试

使用道具 举报

回复
论坛徽章:
311
行业板块每日发贴之星
日期:2012-07-12 18:47:29双黄蛋
日期:2011-08-12 17:31:04咸鸭蛋
日期:2011-08-18 15:13:51迷宫蛋
日期:2011-08-18 16:58:25紫蛋头
日期:2011-08-31 10:57:28ITPUB十周年纪念徽章
日期:2011-09-27 16:30:47蜘蛛蛋
日期:2011-10-20 15:51:25迷宫蛋
日期:2011-10-29 11:12:59ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41鲜花蛋
日期:2011-11-09 20:33:30
发表于 2011-9-16 10:25 | 显示全部楼层
为什么要UPDATE,可以考虑CREATE,速度更快。

使用道具 举报

回复
论坛徽章:
22
授权会员
日期:2007-03-30 06:18:532010年世界杯参赛球队:斯洛文尼亚
日期:2010-01-11 10:40:422010广州亚运会纪念徽章:保龄球
日期:2011-01-12 13:22:412011新春纪念徽章
日期:2011-02-18 11:42:50茶鸡蛋
日期:2011-07-19 01:02:42ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26双黄蛋
日期:2011-12-20 13:19:21蜘蛛蛋
日期:2013-01-06 13:18:37蜘蛛蛋
日期:2013-01-07 14:31:182013年新春福章
日期:2013-02-25 14:51:24
发表于 2011-9-16 10:36 | 显示全部楼层
(select /*+ parallel(a,4)*/ distinct a.pin
                  from in_temp_tradeinfo_unpaid a
                union
                select /*+ parallel(b,4)*/ distinct b.pin from in_temp_tradeinfo_paid b )

这一步的结果能否用MV先算出来?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表