查看: 1981|回复: 3

帮忙优化一条语句

[复制链接]
论坛徽章:
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
发表于 2010-11-26 16:00 | 显示全部楼层 |阅读模式
select distinct (voucher.pk_voucher),
                voucher.pk_glorgbook,
                voucher.prepareddate,
                voucher.no,
                voucher.pk_vouchertype,
                voucher.pk_prepared,
                voucher.totalcredit,
                voucher.totaldebit,
                voucher.explanation
  from gl_voucher voucher,
       gl_detail detail,
       (SELECT pk_corp1, freevalueid, pk_cubasdoc
          FROM bd_cubasdoc, gl_freevalue
         WHERE pk_cubasdoc IN
               (SELECT DISTINCT (pk_cubasdoc)
                  FROM bd_cumandoc
                 WHERE cooperateflag = 'Y'
                   AND pk_corp in ('1058')
                   AND bd_cubasdoc.pk_corp1 IS NOT NULL
                   AND bd_cubasdoc.custprop <> 0
                   and (checktype in
                       ('00010000000000000071', '00010000000000000072',
                        '00010000000000000073') and
                       gl_freevalue.checkvalue = pk_cubasdoc))) freevalue
where voucher.pk_voucher = detail.pk_voucher
   and voucher.pk_glorgbook in ('0001A810000000001UZL')
   and voucher.prepareddate >= '2010-11-01'
   and voucher.prepareddate <= '2010-11-26'
   and voucher.dr = 0
   and voucher.discardflag = 'N'
   and voucher.voucherkind <> 2
   and voucher.errmessage is null
   and (detail.pk_accsubj in
       (select pk_accsubj
           from bd_accsubj
          where (subjcode like '112201%' or subjcode like '122101%' or
                subjcode like '112301%' or subjcode like '1131%' or
                subjcode like '151101%' or subjcode like '1132%' or
                subjcode like '220201%' or subjcode like '122101%' or
                subjcode like '220301%' or subjcode like '2232%' or
                subjcode like '4001%' or subjcode like '2231%')
            and pk_glorgbook in ('0001A810000000001UZL')) and
       freevalue.freevalueid = detail.assid)
   and detail.busireconno is null
   and not exists
(select pk_detailself
          from gl_reconoccursub
         where detail.pk_detail = gl_reconoccursub.pk_detailself)
   and not exists
(select pk_detailother
          from gl_reconoccursub
         where detail.pk_detail = gl_reconoccursub.pk_detailother)
   and not exists
(select pk_voucherdetail
          from gl_corpcontrastsub
         where detail.pk_detail = gl_corpcontrastsub.pk_voucherdetail)
order by voucher.PK_glorgbook












--------------------------------------------------------------------------------------------------------------
| Id  | Operation                             | Name                 | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                      |     1 |   487 |    64   (4)| 00:00:01 |
|   1 |  HASH UNIQUE                          |                      |     1 |   487 |    64   (4)| 00:00:01 |
|*  2 |   HASH JOIN ANTI                      |                      |     1 |   487 |    63   (2)| 00:00:01 |
|   3 |    NESTED LOOPS ANTI                  |                      |     1 |   465 |    55   (2)| 00:00:01 |
|   4 |     NESTED LOOPS ANTI                 |                      |     1 |   444 |    54   (2)| 00:00:01 |
|   5 |      NESTED LOOPS                     |                      |     1 |   423 |    53   (2)| 00:00:01 |
|*  6 |       HASH JOIN                       |                      |     1 |   372 |    52   (2)| 00:00:01 |
|*  7 |        TABLE ACCESS BY INDEX ROWID    | GL_DETAIL            |    65 |  7540 |    26   (0)| 00:00:01 |
|   8 |         NESTED LOOPS                  |                      |    53 | 12349 |    45   (0)| 00:00:01 |
|   9 |          NESTED LOOPS                 |                      |     1 |   117 |    18   (0)| 00:00:01 |
|  10 |           NESTED LOOPS                |                      |     1 |    54 |    16   (0)| 00:00:01 |
|* 11 |            TABLE ACCESS BY INDEX ROWID| BD_CUBASDOC          |     1 |    26 |    15   (0)| 00:00:01 |
|* 12 |             INDEX FULL SCAN           | I_BD_CUBASDOC_5      |   153 |       |     1   (0)| 00:00:01 |
|* 13 |            TABLE ACCESS BY INDEX ROWID| BD_CUMANDOC          |     1 |    28 |     1   (0)| 00:00:01 |
|* 14 |             INDEX RANGE SCAN          | I_BD_CUMANDOC_1      |     1 |       |     1   (0)| 00:00:01 |
|  15 |           INLIST ITERATOR             |                      |       |       |            |          |
|  16 |            TABLE ACCESS BY INDEX ROWID| GL_FREEVALUE         |     2 |   126 |     2   (0)| 00:00:01 |
|* 17 |             INDEX RANGE SCAN          | I_GL_FREEVALUE2      |     1 |       |     1   (0)| 00:00:01 |
|* 18 |          INDEX RANGE SCAN             | I_GL_DETAIL_3        |    70 |       |     1   (0)| 00:00:01 |
|* 19 |        TABLE ACCESS BY INDEX ROWID    | GL_VOUCHER           |   244 | 33916 |     6   (0)| 00:00:01 |
|* 20 |         INDEX SKIP SCAN               | I_GL_VOUCHER_8       |    16 |       |     2  (50)| 00:00:01 |
|* 21 |       TABLE ACCESS BY INDEX ROWID     | BD_ACCSUBJ           |     1 |    51 |     1   (0)| 00:00:01 |
|* 22 |        INDEX UNIQUE SCAN              | PK_BD_ACCSUBJ        |     1 |       |     1   (0)| 00:00:01 |
|* 23 |      INDEX RANGE SCAN                 | I_GL_RECONOCCURSUB_1 | 28784 |   590K|     1   (0)| 00:00:01 |
|* 24 |     INDEX RANGE SCAN                  | I_GL_RECONOCCURSUB_2 | 54455 |  1116K|     1   (0)| 00:00:01 |
|  25 |    TABLE ACCESS FULL                  | GL_CORPCONTRASTSUB   |     1 |    22 |     8   (0)| 00:00:01 |
--------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("DETAIL"."PK_DETAIL"="GL_CORPCONTRASTSUB"."PK_VOUCHERDETAIL")
   6 - access("VOUCHER"."PK_VOUCHER"="DETAIL"."PK_VOUCHER")
   7 - filter("DETAIL"."BUSIRECONNO" IS NULL)
  11 - filter("BD_CUBASDOC"."CUSTPROP"<>0)
  12 - filter("BD_CUBASDOC"."PK_CORP1" IS NOT NULL)
  13 - filter("COOPERATEFLAG"='Y')
  14 - access("PK_CORP"='1058' AND "PK_CUBASDOC"="PK_CUBASDOC")
  17 - access("GL_FREEVALUE"."CHECKVALUE"="PK_CUBASDOC" AND ("CHECKTYPE"='00010000000000000071' OR
              "CHECKTYPE"='00010000000000000072' OR "CHECKTYPE"='00010000000000000073'))
  18 - access("FREEVALUEID"="DETAIL"."ASSID")
  19 - filter("VOUCHER"."DR"=0 AND "VOUCHER"."VOUCHERKIND"<>2 AND "VOUCHER"."ERRMESSAGE" IS NULL AND
              "VOUCHER"."DISCARDFLAG"='N')
  20 - access("VOUCHER"."PREPAREDDATE">='2010-11-01' AND
              "VOUCHER"."PK_GLORGBOOK"='0001A810000000001UZL' AND "VOUCHER"."PREPAREDDATE"<='2010-11-26')
       filter("VOUCHER"."PK_GLORGBOOK"='0001A810000000001UZL')
  21 - filter("PK_GLORGBOOK"='0001A810000000001UZL' AND ("SUBJCODE" LIKE '122101%' OR "SUBJCODE" LIKE
              '112201%' OR "SUBJCODE" LIKE '112301%' OR "SUBJCODE" LIKE '1131%' OR "SUBJCODE" LIKE '151101%' OR
              "SUBJCODE" LIKE '1132%' OR "SUBJCODE" LIKE '220201%' OR "SUBJCODE" LIKE '220301%' OR "SUBJCODE" LIKE
              '2232%' OR "SUBJCODE" LIKE '4001%' OR "SUBJCODE" LIKE '2231%'))
  22 - access("DETAIL"."PK_ACCSUBJ"="PK_ACCSUBJ")
  23 - access("DETAIL"."PK_DETAIL"="GL_RECONOCCURSUB"."PK_DETAILSELF")
  24 - access("DETAIL"."PK_DETAIL"="GL_RECONOCCURSUB"."PK_DETAILOTHER")


Statistics
----------------------------------------------------------
          1  recursive calls
          0  db block gets
     977074  consistent gets
          0  physical reads
        116  redo size
        696  bytes sent via SQL*Net to client
        923  bytes received via SQL*Net from client
          1  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          0  rows processed
论坛徽章:
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
 楼主| 发表于 2010-11-26 16:03 | 显示全部楼层
gl_voucher 1232904条
gl_detail   26180149条
gl_reconoccursub  55743条

使用道具 举报

回复
论坛徽章:
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-11-26 16:18 | 显示全部楼层
做个10046来看,

使用道具 举报

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


Try!

select  /*+ no_merge(freevalue) */
        distinct voucher.pk_voucher,
        voucher.pk_glorgbook,
        voucher.prepareddate,
        voucher.no,
        voucher.pk_vouchertype,
        voucher.pk_prepared,
        voucher.totalcredit,
        voucher.totaldebit,
        voucher.explanation   
  from gl_voucher voucher,
       gl_detail detail,   
       (SELECT pk_corp1,
               freevalueid,
               pk_cubasdoc
          FROM bd_cubasdoc,
               gl_freevalue
         WHERE pk_cubasdoc IN(SELECT DISTINCT pk_cubasdoc
                                FROM bd_cumandoc
                               WHERE cooperateflag = 'Y'
                                 AND pk_corp in ('1058')
                                 AND bd_cubasdoc.pk_corp1 IS NOT NULL
                                 AND bd_cubasdoc.custprop <> 0
                                 and checktype in('00010000000000000071', '00010000000000000072', '00010000000000000073')
                                 and gl_freevalue.checkvalue = pk_cubasdoc)) freevalue                 
where voucher.pk_voucher = detail.pk_voucher
   and voucher.pk_glorgbook in ('0001A810000000001UZL')
   and voucher.prepareddate >= '2010-11-01'
   and voucher.prepareddate <= '2010-11-26'
   and voucher.dr = 0
   and voucher.discardflag = 'N'
   and voucher.voucherkind <> 2
   and voucher.errmessage is null
   and detail.pk_accsubj in(select pk_accsubj
                               from bd_accsubj
                              where (subjcode like '112201%' or subjcode like '122101%' or
                                     subjcode like '112301%' or subjcode like '1131%' or
                                     subjcode like '151101%' or subjcode like '1132%' or
                                     subjcode like '220201%' or subjcode like '122101%' or
                                     subjcode like '220301%' or subjcode like '2232%' or
                                     subjcode like '4001%' or subjcode like '2231%')
                                and pk_glorgbook in ('0001A810000000001UZL'))                              
   and freevalue.freevalueid = detail.assid
   and detail.busireconno is null
   and not exists(select 1
                   from gl_reconoccursub
                  where detail.pk_detail = gl_reconoccursub.pk_detailself
                    and detail.pk_detail = gl_reconoccursub.pk_detailother)
   and not exists(select 1 from gl_corpcontrastsub where detail.pk_detail = gl_corpcontrastsub.pk_voucherdetail)
order by voucher.PK_glorgbook;

使用道具 举报

回复

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

本版积分规则 发表回复

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