查看: 2332|回复: 7

帮忙看下如下SQL 该如何优化

[复制链接]
论坛徽章:
30
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442012新春纪念徽章
日期:2012-01-04 11:49:54茶鸡蛋
日期:2012-04-19 11:02:10奥运会纪念徽章:棒球
日期:2012-06-19 17:41:27ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07复活蛋
日期:2013-01-15 10:40:032013年新春福章
日期:2013-02-25 14:51:24咸鸭蛋
日期:2013-02-28 10:06:50蛋疼蛋
日期:2013-03-20 13:55:26劳斯莱斯
日期:2013-08-04 11:17:23
发表于 2009-11-2 18:07 | 显示全部楼层 |阅读模式
SQL Statement
--------------------------------------------------------------------------------------------------------------------------------------------
SELECT
T_01 . "MANDT" , T_01 . "MBLNR" , T_01 . "MJAHR" , T_01 . "ZEILE" , T_00 . "BUDAT" ,
T_01 . "BWART" , T_01 . "SOBKZ" , T_01 . "MATNR" , T_01 . "WERKS" , T_01 . "LIFNR" ,
T_01 . "ERFMG" , T_01 . "ERFME"
FROM
"MKPF" T_00 INNER JOIN "MSEG" T_01 ON T_01 . "MANDT" = :A0 AND T_01 . "MBLNR" = T_00 . "MBLNR" AND
T_01 . "MJAHR" = T_00 . "MJAHR"
WHERE
T_00 . "MANDT" = :A1 AND T_00 . "BUDAT" BETWEEN :A2 AND :A3 AND T_01 . "WERKS" IN ( :A4 , :A5 ,
:A6 , :A7 , :A8 , :A9 ) AND T_01 . "BWART" = :A10 AND T_01 . "SOBKZ" = :A11


Execution Plan

Explain from gv$sql_plan: Address: 07000007BB77B468 Hash_value:  4267467911 Child_number:  0 Instance_ID: 1 Sql_id: 95a56vbz5st47
Parse Timestamp: 20091029   01:37:31

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

SELECT STATEMENT ( Estimated Costs = 342,292 , Estimated #Rows = 0 )
|
---   6 FILTER
     |   Filter Predicates
     |
     ---   5 NESTED LOOPS
         |   ( Estim. Costs = 342,291 , Estim. #Rows = 22 )
         |   Estim. CPU-Costs = 30,771,163,122 Estim. IO-Costs = 338,925
         |
         |--   2 TABLE ACCESS BY INDEX ROWID MSEG
         |   |   ( Estim. Costs = 336,903 , Estim. #Rows = 8,972 )
         |   |   Estim. CPU-Costs = 30,727,977,620 Estim. IO-Costs = 333,541
         |   |
         |   ------1 INDEX RANGE SCAN MSEG~M
         |           ( Estim. Costs = 335,294 , Estim. #Rows = 8,972 )
         |           Search Columns: 3
         |           Estim. CPU-Costs = 30,710,002,371 Estim. IO-Costs = 331,934
         |           Access Predicates Filter Predicates
         |
         ---   4 TABLE ACCESS BY INDEX ROWID MKPF
             |   ( Estim. Costs = 1 , Estim. #Rows = 1 )
             |   Estim. CPU-Costs = 4,813 Estim. IO-Costs = 1
             |   Filter Predicates
             |
             ------3 INDEX UNIQUE SCAN MKPF~0
                     Search Columns: 3
                     Estim. CPU-Costs = 3,229 Estim. IO-Costs = 0
                     Access Predicates
论坛徽章:
68
2012新春纪念徽章
日期:2012-01-04 11:51:22奥运会纪念徽章:举重
日期:2012-08-02 22:17:14ITPUB 11周年纪念徽章
日期:2012-10-09 18:07:312013年新春福章
日期:2013-02-25 14:51:24慢羊羊
日期:2015-03-04 14:51:352015年新春福章
日期:2015-03-06 11:57:312015年新春福章
日期:2015-06-11 12:54:06
发表于 2009-11-2 18:33 | 显示全部楼层
|   ------1 INDEX RANGE SCAN MSEG~M
         |           ( Estim. Costs = 335,294 , Estim. #Rows = 8,972 )
         |           Search Columns: 3
         |           Estim. CPU-Costs = 30,710,002,371 Estim. IO-Costs = 331,934
         |           Access Predicates Filter Predicates
主要是这里消耗很高,检查一下MSEG表的这个索引是怎么建的

使用道具 举报

回复
论坛徽章:
6
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:10祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:19:49
发表于 2009-11-2 19:16 | 显示全部楼层

掌握大的原则

最小数据、最小查询

使用道具 举报

回复
论坛徽章:
400
紫蛋头
日期:2012-05-21 10:19:41迷宫蛋
日期:2012-06-06 16:02:49奥运会纪念徽章:足球
日期:2012-06-29 15:30:06奥运会纪念徽章:排球
日期:2012-07-10 21:24:24鲜花蛋
日期:2012-07-16 15:24:59奥运会纪念徽章:拳击
日期:2012-08-07 10:54:50奥运会纪念徽章:羽毛球
日期:2012-08-21 15:55:33奥运会纪念徽章:蹦床
日期:2012-08-21 21:09:51奥运会纪念徽章:篮球
日期:2012-08-24 10:29:11奥运会纪念徽章:体操
日期:2012-09-07 16:40:00
发表于 2009-11-2 19:51 | 显示全部楼层
bookmark

使用道具 举报

回复
论坛徽章:
4
2009日食纪念
日期:2009-07-22 09:30:00祖国60周年纪念徽章
日期:2009-10-09 08:28:002010新春纪念徽章
日期:2010-03-01 11:20:522011新春纪念徽章
日期:2011-05-03 10:20:26
发表于 2009-11-2 20:09 | 显示全部楼层
mark !

使用道具 举报

回复
论坛徽章:
51
2012新春纪念徽章
日期:2012-08-24 17:06:04马上有对象
日期:2014-10-31 15:14:43马上有车
日期:2014-12-17 16:04:37马上有房
日期:2014-12-29 08:11:41马上有车
日期:2015-01-16 16:56:11马上加薪
日期:2015-02-05 11:24:51沸羊羊
日期:2015-03-04 14:51:522015年新春福章
日期:2015-03-06 11:57:312015年新春福章
日期:2015-05-08 10:02:59喜羊羊
日期:2015-06-11 08:58:52
发表于 2009-11-3 11:19 | 显示全部楼层
SAP里的啊,MSEG表数据太大了,

使用道具 举报

回复
论坛徽章:
30
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442012新春纪念徽章
日期:2012-01-04 11:49:54茶鸡蛋
日期:2012-04-19 11:02:10奥运会纪念徽章:棒球
日期:2012-06-19 17:41:27ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07复活蛋
日期:2013-01-15 10:40:032013年新春福章
日期:2013-02-25 14:51:24咸鸭蛋
日期:2013-02-28 10:06:50蛋疼蛋
日期:2013-03-20 13:55:26劳斯莱斯
日期:2013-08-04 11:17:23
 楼主| 发表于 2009-11-3 11:53 | 显示全部楼层
2 和 4 的nest loop 是不是“驱动表”选择有问题了?   帮确定一下

使用道具 举报

回复
论坛徽章:
126
ITPUB元老
日期:2007-07-04 17:27:50会员2007贡献徽章
日期:2007-09-26 18:42:10现任管理团队成员
日期:2011-05-07 01:45:08优秀写手
日期:2015-01-09 06:00:14版主7段
日期:2015-07-16 02:10:00
发表于 2009-11-3 13:25 | 显示全部楼层


加一个如下的hints.

/*+ leading(T_00)  use_nl(T_00 T_01) */

使用道具 举报

回复

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

本版积分规则 发表回复

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