查看: 2331|回复: 2

SQL优化求助,附执行计划

[复制链接]
论坛徽章:
0
发表于 2011-8-8 21:52 | 显示全部楼层 |阅读模式
mmt一个月的数据量大概有200多万条记录。
ot表的唯一索引字段是 ot.transaction_type_id和ot.language
整段的sql6个小时都运行不完,试过/* Leading(mmt) use_nl(mmt ol) use_hash(ot oh)*/不管用

整段sql如下,奇慢无比,求教优化方法啊;该如何下手呢

Select to_char(oh.ordered_date) gl_date,
       ac.customer_number customer_number_n,
       ac.customer_name customer_name_n,
       jrs.salesrep_number salesrep_number_n,
       ol.attribute1 product_code,
       gs.currency_code invoice_currency_code,
       abs(mmt.transaction_quantity) * nvl(ol.unit_selling_price, 0) original_amt,
       oh.order_number,
       oh.packing_instructions order_comment,
       ot.name order_type,
       oh.transactional_curr_code,
       ol.attribute9 ship_set,
       ol.ordered_item,
       decode(ot.NAME, 'HW Org-transfer order', 'Y', 'N') off_flag,
       oh.attribute5 contract_number
  FROM mtl_material_transactions mmt,
       oe_order_lines_all        ol,
       oe_order_headers_all      oh,
       oe_transaction_types_tl   ot,
       hr_operating_units        ho,
       gl_sets_of_books          gs,
       jtf_rs_salesreps          jrs,
       ar_customers              ac
WHERE mmt.transaction_type_id = 33 --Sales order issue
   AND mmt.trx_source_line_id = ol.line_id
   AND ol.header_id = oh.header_id + 0
   AND oh.order_type_id = ot.transaction_type_id
   AND ot.language = userenv('LANG')
   AND oh.org_id = ho.organization_id
   AND ho.set_of_books_id = gs.set_of_books_id
   AND oh.salesrep_id = jrs.salesrep_id(+)
   AND oh.sold_to_org_id = ac.customer_id(+)
   AND (oh.attribute5 = &p_contract_num OR &p_contract_num IS NULL)
   AND oh.org_id = 218
   AND trunc(mmt.transaction_date) >=
       trunc(to_date('2011-06-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'))
   AND trunc(mmt.transaction_date) <=
       trunc(to_date('2011-07-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));

执行计划:
SELECT STATEMENT, GOAL = ALL_ROWS                        48803        1        352
NESTED LOOPS                                       
  NESTED LOOPS                                                        48803        1        352
   NESTED LOOPS                                                        48798        1        331
    NESTED LOOPS OUTER                                        48766        1        286
     NESTED LOOPS                                                        48764        1        272
      NESTED LOOPS OUTER                                        48763        1        240
       HASH JOIN                                                        48759        1        169
        NESTED LOOPS                                       
         NESTED LOOPS                        6        1        74
          MERGE JOIN CARTESIAN                        5        1        62
           NESTED LOOPS                        3        1        32
            NESTED LOOPS                        1        1        13
             INDEX UNIQUE SCAN                        HR        HR_ALL_ORGANIZATION_UNTS_TL_PK        1        1        8
             INDEX UNIQUE SCAN                        HR        HR_ORGANIZATION_UNITS_PK            0        1        5
            TABLE ACCESS BY INDEX ROWID        HR        HR_ORGANIZATION_INFORMATION         2        1        19
             INDEX RANGE SCAN                         HR        HR_ORGANIZATION_INFORMATIO_FK   2        1        1        
           BUFFER SORT                        3        1        30
            TABLE ACCESS BY INDEX ROWID        HR        HR_ORGANIZATION_INFORMATION          2        1        30
             INDEX RANGE SCAN                         HR        HR_ORGANIZATION_INFORMATIO_FK   2        1        3        
          INDEX UNIQUE SCAN                         GL        GL_LEDGERS_U2                                        0        1        
         TABLE ACCESS BY INDEX ROWID         GL        GL_LEDGERS                                          1        1        12
        TABLE ACCESS FULL                          ONT        OE_ORDER_HEADERS_ALL                  48753        1083        1085
       VIEW PUSHED PREDICATE        APPS                        AR_CUSTOMERS                                        4        1        71
        NESTED LOOPS                                                                                                   4        1        64
         TABLE ACCESS BY INDEX ROWID         AR        HZ_CUST_ACCOUNTS                            2        1        19
          INDEX UNIQUE SCAN                         AR        HZ_CUST_ACCOUNTS_U1                           1        1        
         TABLE ACCESS BY INDEX ROWID         AR        HZ_PARTIES                                         2        1370373        61666785
          INDEX UNIQUE SCAN                         AR        HZ_PARTIES_U1                                          1        1        
      TABLE ACCESS BY INDEX ROWID         ONT        OE_TRANSACTION_TYPES_TL                        1        1        32
       INDEX UNIQUE SCAN                         ONT        OE_TRANSACTION_TYPES_TL_U1            0        1        
     TABLE ACCESS BY INDEX ROWID          JTF        JTF_RS_SALESREPS                                        2        1        14
      INDEX RANGE SCAN                           JTF        JTF_RS_SALESREPS_U1                            1        1        
    TABLE ACCESS BY INDEX ROWID          ONT        OE_ORDER_LINES_ALL                            32        117        5265
     INDEX RANGE SCAN                           ONT        OE_ORDER_LINES_N1                             3        117        
   INDEX RANGE SCAN                            INV        MTL_MATERIAL_TRANSACTIONS_N27           3        2        
  TABLE ACCESS BY INDEX ROWID           INV        MTL_MATERIAL_TRANSACTIONS              5        1        21
论坛徽章:
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-8-8 22:57 | 显示全部楼层
你只给这个鬼大爷能帮你。。。。 加QQ 帮你调

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2011-8-9 00:05 | 显示全部楼层

回复 #2 lbs1988 的帖子

谢谢lbs,看到你回复心暖暖的 呵呵
可惜上班的地方不能用qq,msn,外网只能上itpub.能给些优化的思路吗,我的想法是写hint,可是又不知该如何写,因为不知道到底哪里出了问题。还请指点指点

使用道具 举报

回复

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

本版积分规则 发表回复

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