查看: 3948|回复: 12

请教各位高手如何对这个语句进行优化??请进!

[复制链接]
论坛徽章:
0
发表于 2010-4-15 11:42 | 显示全部楼层 |阅读模式
各位,本人近期做的一项目中,发现执行该语句的时候耗费时间最多,因此想请诸位出谋划策,提点优化的建议,这里先谢谢了!
update BILL set STATUS='20' where STATUS='10' and PREPAYID IN
(select ID from prepay where REFID2=%.0f and settletype IN('1001','1011','2040'))

BILL表对于某个分支机构有10万~50万不等,也就是说如果两个分支机构的话大概有3,40万条数据。
而prepay表对于两个分支机构而言有6K~1万多的数据。
目前我的优化办法很简单,只是给bill表的PREPAYID和prepay表的REFID2字段加了索引。测试结果大概是这样的:
1个公司单独跑应用(含上面的语句)大概需要1分半,而两个公司一起跑则是6分半。

大家提点建议吧?

修正一下:刚才测试的数据经过核实是 两个分公司合计在BILL表中大约80万的数据。prepay大约5,6万的数据。

[ 本帖最后由 cjhelp 于 2010-4-15 11:50 编辑 ]
论坛徽章:
0
 楼主| 发表于 2010-4-15 11:46 | 显示全部楼层
顶起来!请各位朋友都提点意见,谢谢了!

使用道具 举报

回复
论坛徽章:
41
2010广州亚运会纪念徽章:橄榄球
日期:2011-01-11 06:17:26红孩儿
日期:2012-12-19 11:07:13玉石琵琶
日期:2012-12-19 11:07:13九尾狐狸
日期:2012-12-19 11:07:13嫦娥
日期:2012-12-19 11:07:13玉兔
日期:2012-12-19 11:07:13紫蜘蛛
日期:2012-12-19 11:07:13蓝色妖姬
日期:2012-12-19 11:07:13紫蛋头
日期:2013-01-23 09:04:49SQL大赛参与纪念
日期:2013-12-06 14:03:45
发表于 2010-4-15 12:32 | 显示全部楼层
1) what the BILL.STATUS looks like? how many rows for "STATUS='10' "? if only a small group, you can try to create an index on BILL.STATUS

2) you can try to change "PREPAYID IN ..." to "exist"

使用道具 举报

回复
论坛徽章:
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
发表于 2010-4-15 13:30 | 显示全部楼层
做个10046,看看哪步最消耗时间,

使用道具 举报

回复
论坛徽章:
8
奥运会纪念徽章:现代五项
日期:2008-10-24 13:26:492009新春纪念徽章
日期:2009-01-04 14:52:282009日食纪念
日期:2009-07-22 09:30:00ITPUB8周年纪念徽章
日期:2009-09-27 10:21:21生肖徽章2007版:猴
日期:2009-10-25 09:27:19授权会员
日期:2009-12-27 10:46:202010年世界杯参赛球队:阿根廷
日期:2010-01-18 12:04:24ITPUB9周年纪念徽章
日期:2010-10-08 09:31:21
发表于 2010-4-15 15:11 | 显示全部楼层
执行计划发出来

使用道具 举报

回复
招聘 : Java研发
认证徽章
论坛徽章:
71
马上加薪
日期:2014-02-19 11:55:14蜘蛛蛋
日期:2012-12-26 18:16:01茶鸡蛋
日期:2012-11-16 08:12:48ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:网球
日期:2012-08-23 14:58:08奥运会纪念徽章:沙滩排球
日期:2012-07-19 17:28:14版主2段
日期:2012-07-07 02:21:02咸鸭蛋
日期:2012-03-23 18:17:482012新春纪念徽章
日期:2012-02-13 15:13:512012新春纪念徽章
日期:2012-02-13 15:13:51
发表于 2010-4-15 15:28 | 显示全部楼层
更新需要影响到多少数据?

使用道具 举报

回复
认证徽章
论坛徽章:
9
ITPUB社区OCM联盟徽章
日期:2013-03-27 11:17:11奥运纪念徽章
日期:2013-06-18 09:13:52ITPUB社区千里马徽章
日期:2013-08-22 09:58:03大众
日期:2013-08-30 14:51:33路虎
日期:2013-12-01 18:25:42
发表于 2010-4-15 15:33 | 显示全部楼层
select * from table(dbms_xplan.display_cursor(null,null,'iostats last'));

看看PLAN 中哪步最慢,然后再分析

使用道具 举报

回复
论坛徽章:
10
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB十周年纪念徽章
日期:2011-11-01 16:21:152011新春纪念徽章
日期:2011-05-06 16:49:002011新春纪念徽章
日期:2011-02-18 11:43:33ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512010新春纪念徽章
日期:2010-03-01 11:07:22生肖徽章2007版:鸡
日期:2009-09-28 12:51:472009新春纪念徽章
日期:2009-01-04 14:52:28生肖徽章2007版:鼠
日期:2008-01-02 17:35:53劳斯莱斯
日期:2013-12-16 10:42:54
发表于 2010-4-15 15:58 | 显示全部楼层
执行计划 发来

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2010-4-15 17:05 | 显示全部楼层
多谢楼上的高手们抽空解答,多谢了!
大家不少都谈到了执行计划,那我没说清或者我还不明白。
因为我的应用是pro C++来实现的。也就是C++代码中通过SQL的方式去进行相关操作的。所以上述的语句中存在一些变量。
这种情况下 ,请问我如何才能提供执行计划?这是什么,我还不清楚。

使用道具 举报

回复
论坛徽章:
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
发表于 2010-4-15 17:16 | 显示全部楼层

回复 #9 cjhelp 的帖子

你把有代表意义的数据填进去,放到SQLPLUS里执行,做个10046事件跟踪。

使用道具 举报

回复

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

本版积分规则 发表回复

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号
  
快速回复 返回顶部 返回列表