查看: 3078|回复: 16

这个SQL怎么优化

[复制链接]
论坛徽章:
40
CTO参与奖
日期:2009-01-15 11:42:462014年新春福章
日期:2014-02-18 16:42:02鲜花蛋
日期:2012-05-22 18:55:44复活蛋
日期:2012-05-16 23:33:22ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262010广州亚运会纪念徽章:拳击
日期:2011-03-13 13:47:232010广州亚运会纪念徽章:射箭
日期:2011-02-25 15:57:382010广州亚运会纪念徽章:龙舟
日期:2011-02-21 17:07:012011新春纪念徽章
日期:2011-02-18 11:42:48马上有房
日期:2014-02-18 16:42:02
发表于 2009-12-31 05:45 | 显示全部楼层 |阅读模式
SELECT   b.dblink,
           b.pmm01,
           b.pmmgrup,
           a.ID,
           a.emp_cname,
           a.flow_sign_time
    FROM   epo_hq_signer a, epo_head_master b
   WHERE       TRIM (a.flow_flowid) = b.documentno
           AND a.ifupdate IS NULL
           AND b.datasoucetype IS NULL
ORDER BY   b.pmm01

Plan
SELECT STATEMENT  CHOOSECost: 3,270  Bytes: 2,243,460  Cardinality: 16,140                         
        4 SORT ORDER BY  Cost: 3,270  Bytes: 2,243,460  Cardinality: 16,140                 
                3 HASH JOIN  Cost: 2,927  Bytes: 2,243,460  Cardinality: 16,140         
                        1 TABLE ACCESS FULL ARCHIVE.EPO_HQ_SIGNER Cost: 451  Bytes: 1,404,180  Cardinality: 16,140  
                        2 TABLE ACCESS FULL ARCHIVE.EPO_HEAD_MASTER Cost: 2,268  Bytes: 9,779,380  Cardinality: 188,065  


数据量:epo_hq_signer   277,590笔
        epo_head_master   191,439笔
索引:epo_hq_signer  有一个函数索引  TRIM (a.flow_flowid)   Distinct Keys  111,043
         epo_head_master     documentno是PK

表中涉及到的另外两个栏位,a.ifupdate只有Y,N和空三种值,b.datasoucetype只有FTP,SAP和空三种值

这个SQL运行时逻辑读和物理读都比较高,请问要怎么优化?
论坛徽章:
15
数据库板块每日发贴之星
日期:2008-06-30 01:01:54奥运会纪念徽章:羽毛球
日期:2012-06-26 15:21:24ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26数据库板块每日发贴之星
日期:2011-07-15 01:01:01ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512010年世界杯参赛球队:加纳
日期:2010-07-27 08:59:132010年世界杯参赛球队:智利
日期:2010-07-14 16:06:302010年世界杯参赛球队:斯洛伐克
日期:2010-07-10 02:35:492010年世界杯参赛球队:英格兰
日期:2010-07-09 18:54:212010年世界杯参赛球队:瑞士
日期:2010-01-22 13:33:24
发表于 2009-12-31 06:33 | 显示全部楼层
这个计划还好吧,不算太高

表都分析过了吧?

使用道具 举报

回复
论坛徽章:
15
数据库板块每日发贴之星
日期:2008-06-30 01:01:54奥运会纪念徽章:羽毛球
日期:2012-06-26 15:21:24ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26数据库板块每日发贴之星
日期:2011-07-15 01:01:01ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512010年世界杯参赛球队:加纳
日期:2010-07-27 08:59:132010年世界杯参赛球队:智利
日期:2010-07-14 16:06:302010年世界杯参赛球队:斯洛伐克
日期:2010-07-10 02:35:492010年世界杯参赛球队:英格兰
日期:2010-07-09 18:54:212010年世界杯参赛球队:瑞士
日期:2010-01-22 13:33:24
发表于 2009-12-31 06:35 | 显示全部楼层
要不用hint走loop看看?

使用道具 举报

回复
论坛徽章:
40
CTO参与奖
日期:2009-01-15 11:42:462014年新春福章
日期:2014-02-18 16:42:02鲜花蛋
日期:2012-05-22 18:55:44复活蛋
日期:2012-05-16 23:33:22ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262010广州亚运会纪念徽章:拳击
日期:2011-03-13 13:47:232010广州亚运会纪念徽章:射箭
日期:2011-02-25 15:57:382010广州亚运会纪念徽章:龙舟
日期:2011-02-21 17:07:012011新春纪念徽章
日期:2011-02-18 11:42:48马上有房
日期:2014-02-18 16:42:02
 楼主| 发表于 2009-12-31 08:28 | 显示全部楼层
分析过了

使用道具 举报

回复
论坛徽章:
40
CTO参与奖
日期:2009-01-15 11:42:462014年新春福章
日期:2014-02-18 16:42:02鲜花蛋
日期:2012-05-22 18:55:44复活蛋
日期:2012-05-16 23:33:22ITPUB十周年纪念徽章
日期:2011-11-01 16:23:262010广州亚运会纪念徽章:拳击
日期:2011-03-13 13:47:232010广州亚运会纪念徽章:射箭
日期:2011-02-25 15:57:382010广州亚运会纪念徽章:龙舟
日期:2011-02-21 17:07:012011新春纪念徽章
日期:2011-02-18 11:42:48马上有房
日期:2014-02-18 16:42:02
 楼主| 发表于 2009-12-31 08:45 | 显示全部楼层
原帖由 hdydmichael 于 2009-12-31 06:35 发表
要不用hint走loop看看?


试过了,没改善

使用道具 举报

回复
论坛徽章:
0
发表于 2009-12-31 09:13 | 显示全部楼层
在 a.ifupdate  和  b.datasoucetype 列上创建bitmap index 看看

使用道具 举报

回复
论坛徽章:
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
发表于 2009-12-31 09:14 | 显示全部楼层
AND a.ifupdate IS NULL  符合此条件的记录数多少?
AND b.datasoucetype IS NULL 符合此条件的记录数多少?

量少的话,可以考虑建索引测试一下。

使用道具 举报

回复
论坛徽章:
11
生肖徽章2007版:虎
日期:2009-08-14 13:50:18ITPUB十周年纪念徽章
日期:2011-11-01 16:24:512010广州亚运会纪念徽章:自行车
日期:2011-03-19 13:35:152011新春纪念徽章
日期:2011-02-18 11:42:492010世博会纪念徽章
日期:2010-10-17 20:10:522010系统架构师大会纪念
日期:2010-09-03 16:39:572010新春纪念徽章
日期:2010-03-01 11:04:592010新春纪念徽章
日期:2010-01-04 08:33:08参与WIN7挑战赛纪念
日期:2009-11-06 16:05:25生肖徽章2007版:狗
日期:2009-09-10 11:32:03
发表于 2009-12-31 09:37 | 显示全部楼层
这个TRIM (a.flow_flowid) 选择性还是不错的,加hint试试吗?

使用道具 举报

回复
论坛徽章:
11
生肖徽章2007版:虎
日期:2009-08-14 13:50:18ITPUB十周年纪念徽章
日期:2011-11-01 16:24:512010广州亚运会纪念徽章:自行车
日期:2011-03-19 13:35:152011新春纪念徽章
日期:2011-02-18 11:42:492010世博会纪念徽章
日期:2010-10-17 20:10:522010系统架构师大会纪念
日期:2010-09-03 16:39:572010新春纪念徽章
日期:2010-03-01 11:04:592010新春纪念徽章
日期:2010-01-04 08:33:08参与WIN7挑战赛纪念
日期:2009-11-06 16:05:25生肖徽章2007版:狗
日期:2009-09-10 11:32:03
发表于 2009-12-31 09:38 | 显示全部楼层
原帖由 ZALBB 于 2009-12-31 09:14 发表
AND a.ifupdate IS NULL  符合此条件的记录数多少?
AND b.datasoucetype IS NULL 符合此条件的记录数多少?

量少的话,可以考虑建索引测试一下。



is null 能走索引吗?

使用道具 举报

回复
论坛徽章:
0
发表于 2009-12-31 12:28 | 显示全部楼层
可以考虑将该列为空的数据更新值 为 "N/A"然后建索引 跑跑看

使用道具 举报

回复

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

本版积分规则 发表回复

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