查看: 4375|回复: 15

一个语句优化1个小时20分钟到1秒 哎感慨下

[复制链接]
认证徽章
论坛徽章:
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
发表于 2011-7-29 16:14 | 显示全部楼层 |阅读模式
以前
Elapsed Time (s)
CPU Time (s)
Executions
Elap per Exec (s)
% Total DB Time
SQL Id
SQL Module
SQL Text
5,054
4,614
0

49.80
2nr151yc9tqm2


SELECT * FROM (SELECT ROWNUM A...


现在1S
Executed in 1.204 seconds

因为保密原因,不能公开语句。
主要原因就是NEST LOOP 和子查询展开,强制使用HASH JOIN和不展开子查询,
性能提高100%
哎CBO啊,还是要手动提示你。

[ 本帖最后由 gaopengtttt 于 2011-7-30 10:40 编辑 ]
论坛徽章:
5
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51数据库板块每日发贴之星
日期:2011-07-22 01:01:02蜘蛛蛋
日期:2011-08-24 14:10:13ITPUB十周年纪念徽章
日期:2011-11-01 16:24:042012新春纪念徽章
日期:2012-01-04 11:54:26
发表于 2011-7-29 16:20 | 显示全部楼层
哟西 ,保密局的啊

使用道具 举报

回复
论坛徽章:
0
发表于 2011-7-29 16:21 | 显示全部楼层
怎么hint的?把hint发来看看。

使用道具 举报

回复
论坛徽章:
4
2011新春纪念徽章
日期:2011-02-18 11:42:49咸鸭蛋
日期:2011-06-21 16:20:09ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262012新春纪念徽章
日期:2012-01-04 11:53:54
发表于 2011-7-29 16:23 | 显示全部楼层
不发语句。。。这不是吊人胃口么。。。

使用道具 举报

回复
认证徽章
论坛徽章:
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
发表于 2011-7-29 16:25 | 显示全部楼层
SELECT /*+ no_merge(I) */
                         count(*)
                          from (select /*+use_hash(D,a)*/
                                 *
                                  from test D,
                                       (select
                                       *
                                          from 1test1 g,
                                               test2       E
                                         where G.1 = E.1
                                           and G.2 =
                                               '8127185002201000005000'
                                           and I3 LIKE '%冯%') a
                                 where D.1= a.1
                                   AND D.4 = a.4
                                   AND D.5 = a.5) C,
                               (SELECT II.*
                                  FROM 123 II
                                  LEFT JOIN 123 J ON II.123 =
                                                          J.123
                                 WHERE J.123 IN ('1', '3')
                                   AND J.123 IS NOT NULL
                                   AND II.123 = '66666666666666'
                                   AND II.123 <> 'I') I
                         where C.123 = I.123(+)
                           AND C.123 = I.123(+)
                           AND I.123 <> 'I'
                           AND C.123 = '666666666666666'

大概就这个意思

使用道具 举报

回复
认证徽章
论坛徽章:
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
发表于 2011-7-29 16:26 | 显示全部楼层
语句复杂,而且被知道了 会被说

使用道具 举报

回复
论坛徽章:
0
发表于 2011-7-29 16:46 | 显示全部楼层
no_merge(I)不能放在跟use_hash(D,a)*/后面吗,应该一样的吧

使用道具 举报

回复
认证徽章
论坛徽章:
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
发表于 2011-7-29 16:56 | 显示全部楼层
不能我的目的是子查询I 不展开

使用道具 举报

回复
论坛徽章:
25
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442010世博会纪念徽章
日期:2010-07-30 12:07:232011新春纪念徽章
日期:2011-02-18 11:43:332010广州亚运会纪念徽章:高尔夫球
日期:2011-04-11 18:22:37蜘蛛蛋
日期:2011-08-17 08:44:40ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15复活蛋
日期:2011-12-15 09:06:552012新春纪念徽章
日期:2012-01-04 11:51:22ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202013年新春福章
日期:2013-02-25 14:51:24
发表于 2011-7-29 17:15 | 显示全部楼层
这种情况比较常见,上次由72000S变成1S的

使用道具 举报

回复
论坛徽章:
0
发表于 2011-7-29 20:14 | 显示全部楼层
你们都是神啊

使用道具 举报

回复

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

本版积分规则 发表回复

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