ITPub博客

首页 > 数据库 > Oracle > SQL TUNING Advisor

SQL TUNING Advisor

原创 Oracle 作者:wanghao2979 时间:2017-02-16 15:12:36 0 删除 编辑
SET LONG 1000000
SET LONGCHUNKSIZE 100000
SET LINESIZE 100
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('SYS_AUTO_SQL_TUNING_TASK') FROM   DUAL;

 
DBMS_SQLTUNE.REPORT_TUNING_TAS
--------------------------------------------------------------------------------
GENERAL INFORMATION SECTION
-------------------------------------------------------------------------------
Tuning Task Name                        : SYS_AUTO_SQL_TUNING_TASK
Tuning Task Owner                       : SYS
Workload Type                           : Automatic High-Load SQL Workload
Execution Count                         : 30
Current Execution                       : EXEC_310869
Execution Type                          : TUNE SQL
Scope                                   : COMPREHENSIVE
Global Time Limit(seconds)              : 3600
Per-SQL Time Limit(seconds)             : 1200
Completion Status                       : INTERRUPTED
Started at                              : 02/15/2017 22:00:08
Completed at                            : 02/15/2017 23:00:13
Number of Candidate SQLs                : 204
Cumulative Elapsed Time of SQL (s)      : 2060644
 
-------------------------------------------------------------------------------
Error: ORA-13639: 当前操作因超时而中断。
-------------------------------------------------------------------------------
 
-------------------------------------------------------------------------------
SUMMARY SECTION
-------------------------------------------------------------------------------
                      Global SQL Tuning Result Statistics
-------------------------------------------------------------------------------
Number of SQLs Analyzed                      : 168
Number of SQLs in the Report                 : 23
Number of SQLs with Findings                 : 23
Number of SQLs with Statistic Findings       : 2
Number of SQLs with Alternative Plan Findings: 5
Number of SQLs with SQL profiles recommended : 17
Number of SQLs with Index Findings           : 18
Number of SQLs with SQL Restructure Findings : 2
Number of SQLs with Timeouts                 : 2
 
-------------------------------------------------------------------------------
    SQLs with Findings Ordered by Maximum (Profile/Index) Benefit, Object ID
-------------------------------------------------------------------------------
object ID  SQL ID        statistics profile(benefit) index(benefit) restructure
---------- ------------- ---------- ---------------- -------------- -----------
    285327 bnpm5m42psm6z                      99.97%         99.99%
    285360 1qg7m1mmcgn0w                      99.98%         99.99%
    285363 9cfj31jf3twjq                      99.96%         99.99%
    285377 2vrnybzaudr22                      99.99%         99.99%
    285380 59dwcvp1mxqau                      99.96%         99.99%
    285381 8q4bvf04q4nau                      99.98%         99.99%
    285384 gxhzyr7dxnq2s                      99.98%         99.99%
    285386 2mmg9gujrjaw4                      99.99%         99.99%
    285394 cwuykgvjk0zn8                      99.92%         99.99%
    285401 afj3g84dj8hug                      99.99%         99.99%
    285361 f5cvrktvp7frz                      99.96%         99.85%
    285278 gq24u0zyq45mx                      41.68%         99.79%
    285397 2fb5gtqh0cbh1                      99.72%
    285325 7y5ggqh6j909w                      99.70%
    285373 148tyj9bzxzgk                      99.70%
    285378 37dx4sx5vk529                                     99.69%           1
    285290 071wjj7t0qtpn                                     99.03%
    285328 90tacxzfd05sm          1           99.00%
    285301 9tfsc9v5fs4d7                                     96.27%
    285342 9r7ta5r2dvfty                                     84.95%
    285266 2jz5hasg203rw                      28.81%         76.11%           1
    285398 9un6spcxthjbw                                     68.67%
    285351 39y4wqyrwtrm7          1
 
-------------------------------------------------------------------------------
    Objects with Missing/Stale Statistics (ordered by schema, object, type)
-------------------------------------------------------------------------------
Schema Name                  Object Name                  Type  State   Cascade
---------------------------- ---------------------------- ----- ------- -------
                       JC800 MLDTEMP1                     TABLE MISSING NO
                             MLDTEMP2                     TABLE MISSING NO
 
-------------------------------------------------------------------------------
 Tables with New Potential Indices (ordered by schema, number of times, table)
-------------------------------------------------------------------------------
Schema Name                 Table Name                  Index Name     Nb Time
--------------------------- --------------------------- -------------- --------
                      JC800 APMACTUALSEQDATAITEM        IDX$$_0001000D       11
                            JITMANPLANPAR               IDX$$_0001000F       11
                            JITSHOPKBGATHER             IDX$$_00010010       11
                            BDMWORKCENTERHEADER         IDX$$_0001000E       10
                            BDMWORKCENTERHEADER         IDX$$_00010001        2
                            APMACTUALSEQDATAITEM        IDX$$_00010042        1
                            APMACTUALSEQDATAITEM        IDX$$_00010002        1
                            BDMWORKCENTERHEADER         IDX$$_00010043        1
                            JITACCSYKBTRUINFO           IDX$$_00010003        1
                            PURDOCHEADER                IDX$$_00010017        1
                            PURDOCHEADER                IDX$$_00010005        1
                            PURDOCITEM                  IDX$$_00010006        1
                            SCMCOMPLETION               IDX$$_0001002C        1
                            SCMSUPPLIERRESOURCE         IDX$$_0001002D        1
                   REPDBNEW FT_GLD_DOCLINE_T            IDX$$_00010004        1
                            FXA_ZJGC_TEMP10             IDX$$_00010014        1
                            FXA_ZJGC_TEMP14             IDX$$_00010016        1
                            FXA_ZJGC_TEMP3              IDX$$_00010013        1
 
-------------------------------------------------------------------------------
DETAILS SECTION
-------------------------------------------------------------------------------
 Statements with Results Ordered by Maximum (Profile/Index) Benefit, Object ID
-------------------------------------------------------------------------------
Object ID  : 285327
Schema Name: JC800
SQL ID     : bnpm5m42psm6z
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-IP'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-14 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-14 23:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-14 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-14 23:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  由于 SQL profile 可能造成了显著的 I/O 时间缩短, 因此未自动创建它。
 
  Recommendation (estimated benefit: 67.21%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285327, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):           21.600848         17.279351         20 %
  CPU Time (s):                21.58072          5.991089      72.23 %
  User I/O Time (s):                  0         10.872656
  Buffer Gets:                  2136722            700712       67.2 %
  Physical Read Requests:             0             29305
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0         240066560
  Physical Write Bytes:               0                 0
  Rows Processed:                   401               401
  Fetches:                          401               401
  Executions:                         1                 1
 
  Recommendation (estimated benefit: 99.97%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285327, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.34%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 89.93%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001000D on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001000E on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001000F on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010010 on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |   717
|   1 |  SORT ORDER BY                       |                          |   717
|   2 |   HASH UNIQUE                        |                          |   717
|   3 |    NESTED LOOPS OUTER                |                          |   717
|   4 |     NESTED LOOPS OUTER               |                          |   717
|*  5 |      HASH JOIN OUTER                 |                          |   717
|*  6 |       HASH JOIN                      |                          |   717
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |   717
|  12 |          NESTED LOOPS                |                          |  1855
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  3025
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              08:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |    30
|   1 |  SORT ORDER BY                       |                          |    30
|   2 |   HASH UNIQUE                        |                          |    30
|   3 |    NESTED LOOPS OUTER                |                          |    30
|*  4 |     HASH JOIN                        |                          |    30
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |   717
|*  9 |       HASH JOIN RIGHT OUTER          |                          |   717
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |   717
|  13 |          NESTED LOOPS                |                          |  1855
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  3025
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   505K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   526K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              08:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 340534432
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |    1
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |    1
|   3 |    SORT ORDER BY                       |                          |    1
|   4 |     PX RECEIVE                         |                          |    1
|   5 |      PX SEND RANGE                     | :TQ10000                 |    1
|   6 |       NESTED LOOPS OUTER               |                          |    1
|   7 |        NESTED LOOPS OUTER              |                          |    1
|   8 |         NESTED LOOPS OUTER             |                          |    1
|   9 |          NESTED LOOPS                  |                          |    1
|  10 |           NESTED LOOPS                 |                          |    1
|  11 |            NESTED LOOPS                |                          |    3
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |    3
|* 15 |              INDEX RANGE SCAN          | IDX$$_0001000D           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 18 |           TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |
|* 19 |            INDEX RANGE SCAN            | IDX$$_0001000E           |
|  20 |          TABLE ACCESS BY INDEX ROWID   | REMPLANTYP               |
|* 21 |           INDEX UNIQUE SCAN            | REMPLANTYP_U             |
|* 22 |         TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |
|* 23 |          INDEX RANGE SCAN              | IDX$$_0001000F           |    3
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |
|* 25 |         INDEX RANGE SCAN               | IDX$$_00010010           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-14 08:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-14 23:59:59')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  18 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  19 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  22 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP')
  23 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 2989096975
 
--------------------------------------------------------------------------------
| Id  | Operation                                | Name                     | Ro
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                         |                          |
|   1 |  PX COORDINATOR                          |                          |
|   2 |   PX SEND QC (ORDER)                     | :TQ10004                 |
|   3 |    SORT ORDER BY                         |                          |
|   4 |     HASH UNIQUE                          |                          |
|   5 |      PX RECEIVE                          |                          |
|   6 |       PX SEND RANGE                      | :TQ10003                 |
|   7 |        NESTED LOOPS OUTER                |                          |
|*  8 |         HASH JOIN                        |                          |
|*  9 |          HASH JOIN OUTER                 |                          |  1
|  10 |           PX RECEIVE                     |                          |  1
|  11 |            PX SEND HASH                  | :TQ10000                 |  1
|  12 |             NESTED LOOPS OUTER           |                          |  1
|  13 |              NESTED LOOPS                |                          |  1
|  14 |               NESTED LOOPS               |                          |  3
|  15 |                PX BLOCK ITERATOR         |                          |
|* 16 |                 TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER      |
|* 17 |                INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T   |  3
|* 18 |               TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAHEADER   |
|* 19 |                INDEX UNIQUE SCAN         | APMACTUALSEQDATAHEADER_U |
|  20 |              TABLE ACCESS BY INDEX ROWID | REMPLANTYP               |
|* 21 |               INDEX UNIQUE SCAN          | REMPLANTYP_U             |
|  22 |           PX RECEIVE                     |                          |
|  23 |            PX SEND HASH                  | :TQ10001                 |
|  24 |             PX BLOCK ITERATOR            |                          |
|* 25 |              TABLE ACCESS STORAGE FULL   | JITMANPLANPAR            |
|  26 |          BUFFER SORT                     |                          |
|  27 |           PX RECEIVE                     |                          |
|  28 |            PX SEND BROADCAST             | :TQ10002                 |
|  29 |             PX BLOCK ITERATOR            |                          |
|* 30 |              TABLE ACCESS STORAGE FULL   | BDMWORKCENTERHEADER      |
|* 31 |         TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |
|* 32 |          INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   8 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
   9 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  16 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  17 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  19 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  25 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"(
  30 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  31 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  32 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285360
Schema Name: JC800
SQL ID     : 1qg7m1mmcgn0w
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-IP'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-13 20:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-14 23:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-13 20:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-14 23:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建, 因为自动创建功能已禁用。请将任务参数 ACCEPT_SQL_PROFILES 设置为 TRUE 以启用自动创建功能。
 
  Recommendation (estimated benefit: 76.13%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285360, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:             PARTIAL          COMPLETE
  Elapsed Time (s):            30.62509          1.220906      96.01 %
  CPU Time (s):               30.497364          1.200818      96.06 %
  User I/O Time (s):                  0            .00891
  Buffer Gets:                  2937557            701608      76.11 %
  Physical Read Requests:             0                28
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0            229376
  Physical Write Bytes:               0                 0
  Rows Processed:                     0               607
  Fetches:                            0               607
  Executions:                         0                 1
 
  Recommendation (estimated benefit: 99.98%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285360, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.34%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 89.59%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010018 on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010019 on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001001A on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001001B on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  1230
|   1 |  SORT ORDER BY                       |                          |  1230
|   2 |   HASH UNIQUE                        |                          |  1230
|   3 |    NESTED LOOPS OUTER                |                          |  1230
|   4 |     NESTED LOOPS OUTER               |                          |  1230
|*  5 |      HASH JOIN OUTER                 |                          |  1230
|*  6 |       HASH JOIN                      |                          |  1230
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |   512
|  12 |          NESTED LOOPS                |                          |   195
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   318
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     3
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              20:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  1230
|   1 |  SORT ORDER BY                       |                          |  1230
|   2 |   HASH UNIQUE                        |                          |  1230
|   3 |    NESTED LOOPS OUTER                |                          |  1230
|*  4 |     HASH JOIN                        |                          |    22
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |   512
|*  9 |       HASH JOIN RIGHT OUTER          |                          |   512
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |   512
|  13 |          NESTED LOOPS                |                          |   195
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   318
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     3
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   505K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   526K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |    57
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              20:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 2487555936
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |    1
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |    1
|   3 |    SORT ORDER BY                       |                          |    1
|   4 |     PX RECEIVE                         |                          |    1
|   5 |      PX SEND RANGE                     | :TQ10000                 |    1
|   6 |       NESTED LOOPS OUTER               |                          |    1
|   7 |        NESTED LOOPS                    |                          |
|   8 |         NESTED LOOPS OUTER             |                          |
|   9 |          NESTED LOOPS OUTER            |                          |
|  10 |           NESTED LOOPS                 |                          |
|  11 |            NESTED LOOPS                |                          |
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |
|* 15 |              INDEX RANGE SCAN          | IDX$$_00010018           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|  18 |           TABLE ACCESS BY INDEX ROWID  | REMPLANTYP               |
|* 19 |            INDEX UNIQUE SCAN           | REMPLANTYP_U             |
|* 20 |          TABLE ACCESS BY INDEX ROWID   | JITMANPLANPAR            |
|* 21 |           INDEX RANGE SCAN             | IDX$$_00010019           |    3
|* 22 |         TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |
|* 23 |          INDEX RANGE SCAN              | IDX$$_0001001A           |
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |    5
|* 25 |         INDEX RANGE SCAN               | IDX$$_0001001B           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-13 20:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-14 23:59:59')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  19 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  20 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP')
  21 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  22 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  23 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 558774612
 
--------------------------------------------------------------------------------
| Id  | Operation                                 | Name                     | R
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                          |                          |
|   1 |  PX COORDINATOR                           |                          |
|   2 |   PX SEND QC (ORDER)                      | :TQ10004                 |
|   3 |    SORT ORDER BY                          |                          |
|   4 |     HASH UNIQUE                           |                          |
|   5 |      PX RECEIVE                           |                          |
|   6 |       PX SEND RANGE                       | :TQ10003                 |
|   7 |        NESTED LOOPS OUTER                 |                          |
|*  8 |         HASH JOIN                         |                          |
|   9 |          NESTED LOOPS OUTER               |                          |
|* 10 |           HASH JOIN OUTER                 |                          |
|  11 |            PX RECEIVE                     |                          |
|  12 |             PX SEND HASH                  | :TQ10000                 |
|  13 |              NESTED LOOPS                 |                          |
|  14 |               NESTED LOOPS                |                          |
|  15 |                NESTED LOOPS               |                          |
|  16 |                 PX BLOCK ITERATOR         |                          |
|* 17 |                  TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER      |
|* 18 |                 INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T   |
|* 19 |                INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 20 |               TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|  21 |            PX RECEIVE                     |                          |
|  22 |             PX SEND HASH                  | :TQ10001                 |
|  23 |              PX BLOCK ITERATOR            |                          |
|* 24 |               TABLE ACCESS STORAGE FULL   | JITMANPLANPAR            |
|  25 |           TABLE ACCESS BY INDEX ROWID     | REMPLANTYP               |
|* 26 |            INDEX UNIQUE SCAN              | REMPLANTYP_U             |
|  27 |          BUFFER SORT                      |                          |
|  28 |           PX RECEIVE                      |                          |
|  29 |            PX SEND BROADCAST              | :TQ10002                 |
|  30 |             PX BLOCK ITERATOR             |                          |
|* 31 |              TABLE ACCESS STORAGE FULL    | BDMWORKCENTERHEADER      |
|* 32 |         TABLE ACCESS BY INDEX ROWID       | JITSHOPKBGATHER          |
|* 33 |          INDEX RANGE SCAN                 | JITSHOPKBGATHER_STRNO    |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   8 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
  10 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND "APMACTUALS
  17 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  18 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  19 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  20 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
  24 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"(
  26 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  31 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  32 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  33 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285363
Schema Name: JC800
SQL ID     : 9cfj31jf3twjq
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-IP'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-13 00:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-13 23:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-13 00:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-13 23:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建, 因为自动创建功能已禁用。请将任务参数 ACCEPT_SQL_PROFILES 设置为 TRUE 以启用自动创建功能。
 
  Recommendation (estimated benefit: 69.14%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285363, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):           23.412212          1.388229      94.07 %
  CPU Time (s):               23.384445          1.373792      94.12 %
  User I/O Time (s):                  0           .008707
  Buffer Gets:                  2269469            700840      69.11 %
  Physical Read Requests:             0                24
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0            196608
  Physical Write Bytes:               0                 0
  Rows Processed:                   426               426
  Fetches:                          426               426
  Executions:                         1                 1
 
  Recommendation (estimated benefit: 99.96%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285363, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.34%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 89.63%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010020 on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010021 on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010022 on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010023 on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |   410
|   1 |  SORT ORDER BY                       |                          |   410
|   2 |   HASH UNIQUE                        |                          |   410
|   3 |    NESTED LOOPS OUTER                |                          |   410
|   4 |     NESTED LOOPS OUTER               |                          |   410
|*  5 |      HASH JOIN OUTER                 |                          |   410
|*  6 |       HASH JOIN                      |                          |   410
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |   410
|  12 |          NESTED LOOPS                |                          |   781
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  1274
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              00:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |   410
|   1 |  SORT ORDER BY                       |                          |   410
|   2 |   HASH UNIQUE                        |                          |   410
|   3 |    NESTED LOOPS OUTER                |                          |   410
|*  4 |     HASH JOIN                        |                          |    17
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |   410
|*  9 |       HASH JOIN RIGHT OUTER          |                          |   410
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |   410
|  13 |          NESTED LOOPS                |                          |   781
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  1274
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   505K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   526K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |    24
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              00:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 4272201593
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |
|   3 |    SORT ORDER BY                       |                          |
|   4 |     PX RECEIVE                         |                          |
|   5 |      PX SEND RANGE                     | :TQ10000                 |
|   6 |       NESTED LOOPS OUTER               |                          |
|   7 |        NESTED LOOPS OUTER              |                          |
|   8 |         NESTED LOOPS OUTER             |                          |
|   9 |          NESTED LOOPS                  |                          |
|  10 |           NESTED LOOPS                 |                          |
|  11 |            NESTED LOOPS                |                          |    1
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |    1
|* 15 |              INDEX RANGE SCAN          | IDX$$_00010020           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 18 |           TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |
|* 19 |            INDEX RANGE SCAN            | IDX$$_00010021           |
|  20 |          TABLE ACCESS BY INDEX ROWID   | REMPLANTYP               |
|* 21 |           INDEX UNIQUE SCAN            | REMPLANTYP_U             |
|* 22 |         TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |
|* 23 |          INDEX RANGE SCAN              | IDX$$_00010022           |    3
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |
|* 25 |         INDEX RANGE SCAN               | IDX$$_00010023           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-13 00:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-13 23:59:59')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  18 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  19 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  22 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP')
  23 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 2989096975
 
--------------------------------------------------------------------------------
| Id  | Operation                                | Name                     | Ro
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                         |                          |
|   1 |  PX COORDINATOR                          |                          |
|   2 |   PX SEND QC (ORDER)                     | :TQ10004                 |
|   3 |    SORT ORDER BY                         |                          |
|   4 |     HASH UNIQUE                          |                          |
|   5 |      PX RECEIVE                          |                          |
|   6 |       PX SEND RANGE                      | :TQ10003                 |
|   7 |        NESTED LOOPS OUTER                |                          |
|*  8 |         HASH JOIN                        |                          |
|*  9 |          HASH JOIN OUTER                 |                          |
|  10 |           PX RECEIVE                     |                          |
|  11 |            PX SEND HASH                  | :TQ10000                 |
|  12 |             NESTED LOOPS OUTER           |                          |
|  13 |              NESTED LOOPS                |                          |
|  14 |               NESTED LOOPS               |                          |  1
|  15 |                PX BLOCK ITERATOR         |                          |
|* 16 |                 TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER      |
|* 17 |                INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T   |  1
|* 18 |               TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAHEADER   |
|* 19 |                INDEX UNIQUE SCAN         | APMACTUALSEQDATAHEADER_U |
|  20 |              TABLE ACCESS BY INDEX ROWID | REMPLANTYP               |
|* 21 |               INDEX UNIQUE SCAN          | REMPLANTYP_U             |
|  22 |           PX RECEIVE                     |                          |
|  23 |            PX SEND HASH                  | :TQ10001                 |
|  24 |             PX BLOCK ITERATOR            |                          |
|* 25 |              TABLE ACCESS STORAGE FULL   | JITMANPLANPAR            |
|  26 |          BUFFER SORT                     |                          |
|  27 |           PX RECEIVE                     |                          |
|  28 |            PX SEND BROADCAST             | :TQ10002                 |
|  29 |             PX BLOCK ITERATOR            |                          |
|* 30 |              TABLE ACCESS STORAGE FULL   | BDMWORKCENTERHEADER      |
|* 31 |         TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |
|* 32 |          INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   8 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
   9 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  16 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  17 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  19 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  25 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"(
  30 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  31 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  32 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285377
Schema Name: JC800
SQL ID     : 2vrnybzaudr22
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-F'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-15 00:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 23:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-15 00:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 23:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建, 因为自动创建功能已禁用。请将任务参数 ACCEPT_SQL_PROFILES 设置为 TRUE 以启用自动创建功能。
 
  Recommendation (estimated benefit: 70.52%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285377, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):           24.122076          1.335963      94.46 %
  CPU Time (s):                24.07034          1.307802      94.56 %
  User I/O Time (s):                  0            .01639
  Buffer Gets:                  2375583            700774       70.5 %
  Physical Read Requests:             0                11
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0             90112
  Physical Write Bytes:               0                 0
  Rows Processed:                   453               453
  Fetches:                          453               453
  Executions:                         1                 1
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285377, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.47%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 51.33%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010028 on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010029 on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001002A on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001002B on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  1845
|   1 |  SORT ORDER BY                       |                          |  1845
|   2 |   HASH UNIQUE                        |                          |  1845
|   3 |    NESTED LOOPS OUTER                |                          |  1845
|   4 |     NESTED LOOPS OUTER               |                          |  1845
|*  5 |      HASH JOIN OUTER                 |                          |  1845
|*  6 |       HASH JOIN                      |                          |  1845
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |  1845
|  12 |          NESTED LOOPS                |                          |   390
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   637
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     5
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              00:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  1845
|   1 |  SORT ORDER BY                       |                          |  1845
|   2 |   HASH UNIQUE                        |                          |  1845
|   3 |    NESTED LOOPS OUTER                |                          |  1845
|*  4 |     HASH JOIN                        |                          |    78
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |  1845
|*  9 |       HASH JOIN RIGHT OUTER          |                          |  1845
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |  1845
|  13 |          NESTED LOOPS                |                          |   390
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   637
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     5
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   637K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   664K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |    24
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              00:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 1023399603
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |    3
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |    3
|   3 |    SORT ORDER BY                       |                          |    3
|   4 |     PX RECEIVE                         |                          |    3
|   5 |      PX SEND RANGE                     | :TQ10000                 |    3
|   6 |       NESTED LOOPS OUTER               |                          |    3
|   7 |        NESTED LOOPS OUTER              |                          |    3
|   8 |         NESTED LOOPS OUTER             |                          |    3
|   9 |          NESTED LOOPS                  |                          |    3
|  10 |           NESTED LOOPS                 |                          |    3
|  11 |            NESTED LOOPS                |                          |
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |
|* 15 |              INDEX RANGE SCAN          | IDX$$_00010028           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 18 |           TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |
|* 19 |            INDEX RANGE SCAN            | IDX$$_00010029           |
|  20 |          TABLE ACCESS BY INDEX ROWID   | REMPLANTYP               |
|* 21 |           INDEX UNIQUE SCAN            | REMPLANTYP_U             |
|* 22 |         TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |
|* 23 |          INDEX RANGE SCAN              | IDX$$_0001002A           |    3
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |
|* 25 |         INDEX RANGE SCAN               | IDX$$_0001002B           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-15 00:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-15 23:59:59')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  18 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  19 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  22 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F')
  23 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 936673233
 
--------------------------------------------------------------------------------
| Id  | Operation                                   | Name                     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                            |                          |
|   1 |  PX COORDINATOR                             |                          |
|   2 |   PX SEND QC (ORDER)                        | :TQ10006                 |
|   3 |    SORT ORDER BY                            |                          |
|   4 |     HASH UNIQUE                             |                          |
|   5 |      PX RECEIVE                             |                          |
|   6 |       PX SEND RANGE                         | :TQ10005                 |
|   7 |        NESTED LOOPS OUTER                   |                          |
|*  8 |         HASH JOIN                           |                          |
|*  9 |          HASH JOIN OUTER                    |                          |
|  10 |           PX RECEIVE                        |                          |
|  11 |            PX SEND HASH                     | :TQ10002                 |
|* 12 |             HASH JOIN OUTER BUFFERED        |                          |
|  13 |              PX RECEIVE                     |                          |
|  14 |               PX SEND HASH                  | :TQ10000                 |
|  15 |                NESTED LOOPS                 |                          |
|  16 |                 NESTED LOOPS                |                          |
|  17 |                  NESTED LOOPS               |                          |
|  18 |                   PX BLOCK ITERATOR         |                          |
|* 19 |                    TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER      |
|* 20 |                   INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T   |
|* 21 |                  INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 22 |                 TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|  23 |              PX RECEIVE                     |                          |
|  24 |               PX SEND HASH                  | :TQ10001                 |
|  25 |                PX BLOCK ITERATOR            |                          |
|* 26 |                 TABLE ACCESS STORAGE FULL   | REMPLANTYP               |
|  27 |           PX RECEIVE                        |                          |
|  28 |            PX SEND HASH                     | :TQ10003                 |
|  29 |             PX BLOCK ITERATOR               |                          |
|* 30 |              TABLE ACCESS STORAGE FULL      | JITMANPLANPAR            |
|  31 |          BUFFER SORT                        |                          |
|  32 |           PX RECEIVE                        |                          |
|  33 |            PX SEND BROADCAST                | :TQ10004                 |
|  34 |             PX BLOCK ITERATOR               |                          |
|* 35 |              TABLE ACCESS STORAGE FULL      | BDMWORKCENTERHEADER      |
|* 36 |         TABLE ACCESS BY INDEX ROWID         | JITSHOPKBGATHER          |
|* 37 |          INDEX RANGE SCAN                   | JITSHOPKBGATHER_STRNO    |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   8 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
   9 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND "APMACTUALS
  12 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND "APMACTUALS
  19 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  20 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  21 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  22 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
  26 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  30 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(+
  35 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  36 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  37 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285380
Schema Name: JC800
SQL ID     : 59dwcvp1mxqau
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-F'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-14 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-14 16:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-14 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-14 16:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建, 因为经验证可获得的收益太少。
 
  Recommendation (estimated benefit: 49.59%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285380, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):           13.490854          1.078417         92 %
  CPU Time (s):               13.476952          1.077836         92 %
  User I/O Time (s):                  0                 0
  Buffer Gets:                  1387604            699943      49.55 %
  Physical Read Requests:             0                 0
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0                 0
  Physical Write Bytes:               0                 0
  Rows Processed:                   264               264
  Fetches:                          264               264
  Executions:                         1                 1
 
  Recommendation (estimated benefit: 99.96%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285380, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.47%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 51.64%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001002E on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001002F on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010030 on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010031 on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |   410
|   1 |  SORT ORDER BY                       |                          |   410
|   2 |   HASH UNIQUE                        |                          |   410
|   3 |    NESTED LOOPS OUTER                |                          |   410
|   4 |     NESTED LOOPS OUTER               |                          |   410
|*  5 |      HASH JOIN OUTER                 |                          |   410
|*  6 |       HASH JOIN                      |                          |   410
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |   410
|  12 |          NESTED LOOPS                |                          |  1855
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  3025
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              08:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              16:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |   410
|   1 |  SORT ORDER BY                       |                          |   410
|   2 |   HASH UNIQUE                        |                          |   410
|   3 |    NESTED LOOPS OUTER                |                          |   410
|*  4 |     HASH JOIN                        |                          |    17
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |   410
|*  9 |       HASH JOIN RIGHT OUTER          |                          |   410
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |   410
|  13 |          NESTED LOOPS                |                          |  1855
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  3025
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   637K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   664K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |    24
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              08:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              16:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 2247366639
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |    1
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |    1
|   3 |    SORT ORDER BY                       |                          |    1
|   4 |     PX RECEIVE                         |                          |    1
|   5 |      PX SEND RANGE                     | :TQ10000                 |    1
|   6 |       NESTED LOOPS OUTER               |                          |    1
|   7 |        NESTED LOOPS OUTER              |                          |    1
|   8 |         NESTED LOOPS OUTER             |                          |    1
|   9 |          NESTED LOOPS                  |                          |    1
|  10 |           NESTED LOOPS                 |                          |    1
|  11 |            NESTED LOOPS                |                          |    5
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |    4
|* 15 |              INDEX RANGE SCAN          | IDX$$_0001002E           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 18 |           TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |
|* 19 |            INDEX RANGE SCAN            | IDX$$_0001002F           |
|* 20 |          TABLE ACCESS BY INDEX ROWID   | JITMANPLANPAR            |
|* 21 |           INDEX RANGE SCAN             | IDX$$_00010030           |    3
|  22 |         TABLE ACCESS BY INDEX ROWID    | REMPLANTYP               |
|* 23 |          INDEX UNIQUE SCAN             | REMPLANTYP_U             |
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |
|* 25 |         INDEX RANGE SCAN               | IDX$$_00010031           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-14 08:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-14 16:59:59')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  18 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  19 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  20 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F')
  21 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  23 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 2989096975
 
--------------------------------------------------------------------------------
| Id  | Operation                                | Name                     | Ro
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                         |                          |
|   1 |  PX COORDINATOR                          |                          |
|   2 |   PX SEND QC (ORDER)                     | :TQ10004                 |
|   3 |    SORT ORDER BY                         |                          |
|   4 |     HASH UNIQUE                          |                          |
|   5 |      PX RECEIVE                          |                          |
|   6 |       PX SEND RANGE                      | :TQ10003                 |
|   7 |        NESTED LOOPS OUTER                |                          |
|*  8 |         HASH JOIN                        |                          |
|*  9 |          HASH JOIN OUTER                 |                          |
|  10 |           PX RECEIVE                     |                          |
|  11 |            PX SEND HASH                  | :TQ10000                 |
|  12 |             NESTED LOOPS OUTER           |                          |
|  13 |              NESTED LOOPS                |                          |
|  14 |               NESTED LOOPS               |                          |  3
|  15 |                PX BLOCK ITERATOR         |                          |
|* 16 |                 TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER      |
|* 17 |                INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T   |  3
|* 18 |               TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAHEADER   |
|* 19 |                INDEX UNIQUE SCAN         | APMACTUALSEQDATAHEADER_U |
|  20 |              TABLE ACCESS BY INDEX ROWID | REMPLANTYP               |
|* 21 |               INDEX UNIQUE SCAN          | REMPLANTYP_U             |
|  22 |           PX RECEIVE                     |                          |
|  23 |            PX SEND HASH                  | :TQ10001                 |
|  24 |             PX BLOCK ITERATOR            |                          |
|* 25 |              TABLE ACCESS STORAGE FULL   | JITMANPLANPAR            |
|  26 |          BUFFER SORT                     |                          |
|  27 |           PX RECEIVE                     |                          |
|  28 |            PX SEND BROADCAST             | :TQ10002                 |
|  29 |             PX BLOCK ITERATOR            |                          |
|* 30 |              TABLE ACCESS STORAGE FULL   | BDMWORKCENTERHEADER      |
|* 31 |         TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |
|* 32 |          INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   8 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
   9 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  16 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  17 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  19 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  25 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(+
  30 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  31 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  32 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285381
Schema Name: JC800
SQL ID     : 8q4bvf04q4nau
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-F'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-14 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-14 23:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-14 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-14 23:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建, 因为自动创建功能已禁用。请将任务参数 ACCEPT_SQL_PROFILES 设置为 TRUE 以启用自动创建功能。
 
  Recommendation (estimated benefit: 66.72%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285381, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):           21.793969          1.391961      93.61 %
  CPU Time (s):               21.757693          1.390789       93.6 %
  User I/O Time (s):                  0                 0
  Buffer Gets:                  2103757            700545       66.7 %
  Physical Read Requests:             0                 0
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0                 0
  Physical Write Bytes:               0                 0
  Rows Processed:                   401               401
  Fetches:                          401               401
  Executions:                         1                 1
 
  Recommendation (estimated benefit: 99.98%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285381, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.47%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 51.76%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010032 on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010033 on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010034 on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010035 on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |   717
|   1 |  SORT ORDER BY                       |                          |   717
|   2 |   HASH UNIQUE                        |                          |   717
|   3 |    NESTED LOOPS OUTER                |                          |   717
|   4 |     NESTED LOOPS OUTER               |                          |   717
|*  5 |      HASH JOIN OUTER                 |                          |   717
|*  6 |       HASH JOIN                      |                          |   717
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |   717
|  12 |          NESTED LOOPS                |                          |  1855
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  3025
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              08:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |   717
|   1 |  SORT ORDER BY                       |                          |   717
|   2 |   HASH UNIQUE                        |                          |   717
|   3 |    NESTED LOOPS OUTER                |                          |   717
|*  4 |     HASH JOIN                        |                          |    30
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |   717
|*  9 |       HASH JOIN RIGHT OUTER          |                          |   717
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |   717
|  13 |          NESTED LOOPS                |                          |  1855
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  3025
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   637K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   664K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |    24
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              08:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 2684149737
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |    1
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |    1
|   3 |    SORT ORDER BY                       |                          |    1
|   4 |     PX RECEIVE                         |                          |    1
|   5 |      PX SEND RANGE                     | :TQ10000                 |    1
|   6 |       NESTED LOOPS OUTER               |                          |    1
|   7 |        NESTED LOOPS OUTER              |                          |    1
|   8 |         NESTED LOOPS OUTER             |                          |    1
|   9 |          NESTED LOOPS                  |                          |    1
|  10 |           NESTED LOOPS                 |                          |    1
|  11 |            NESTED LOOPS                |                          |    3
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |    3
|* 15 |              INDEX RANGE SCAN          | IDX$$_00010032           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 18 |           TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |
|* 19 |            INDEX RANGE SCAN            | IDX$$_00010033           |
|  20 |          TABLE ACCESS BY INDEX ROWID   | REMPLANTYP               |
|* 21 |           INDEX UNIQUE SCAN            | REMPLANTYP_U             |
|* 22 |         TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |
|* 23 |          INDEX RANGE SCAN              | IDX$$_00010034           |    3
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |
|* 25 |         INDEX RANGE SCAN               | IDX$$_00010035           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-14 08:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-14 23:59:59')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  18 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  19 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  22 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F')
  23 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 2989096975
 
--------------------------------------------------------------------------------
| Id  | Operation                                | Name                     | Ro
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                         |                          |  1
|   1 |  PX COORDINATOR                          |                          |
|   2 |   PX SEND QC (ORDER)                     | :TQ10004                 |  1
|   3 |    SORT ORDER BY                         |                          |  1
|   4 |     HASH UNIQUE                          |                          |  1
|   5 |      PX RECEIVE                          |                          |  1
|   6 |       PX SEND RANGE                      | :TQ10003                 |  1
|   7 |        NESTED LOOPS OUTER                |                          |  1
|*  8 |         HASH JOIN                        |                          |
|*  9 |          HASH JOIN OUTER                 |                          |  1
|  10 |           PX RECEIVE                     |                          |  1
|  11 |            PX SEND HASH                  | :TQ10000                 |  1
|  12 |             NESTED LOOPS OUTER           |                          |  1
|  13 |              NESTED LOOPS                |                          |  1
|  14 |               NESTED LOOPS               |                          |  3
|  15 |                PX BLOCK ITERATOR         |                          |
|* 16 |                 TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER      |
|* 17 |                INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T   |  3
|* 18 |               TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAHEADER   |
|* 19 |                INDEX UNIQUE SCAN         | APMACTUALSEQDATAHEADER_U |
|  20 |              TABLE ACCESS BY INDEX ROWID | REMPLANTYP               |
|* 21 |               INDEX UNIQUE SCAN          | REMPLANTYP_U             |
|  22 |           PX RECEIVE                     |                          |
|  23 |            PX SEND HASH                  | :TQ10001                 |
|  24 |             PX BLOCK ITERATOR            |                          |
|* 25 |              TABLE ACCESS STORAGE FULL   | JITMANPLANPAR            |
|  26 |          BUFFER SORT                     |                          |
|  27 |           PX RECEIVE                     |                          |
|  28 |            PX SEND BROADCAST             | :TQ10002                 |
|  29 |             PX BLOCK ITERATOR            |                          |
|* 30 |              TABLE ACCESS STORAGE FULL   | BDMWORKCENTERHEADER      |
|* 31 |         TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |
|* 32 |          INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   8 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
   9 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  16 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  17 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  19 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  25 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(+
  30 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  31 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  32 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285384
Schema Name: JC800
SQL ID     : gxhzyr7dxnq2s
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-F'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-15 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 16:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-15 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 16:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建, 因为经验证可获得的收益太少。
 
  Recommendation (estimated benefit: 49.02%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285384, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):           15.089957          1.456678      90.34 %
  CPU Time (s):               15.034715           1.44778      90.37 %
  User I/O Time (s):                  0                 0
  Buffer Gets:                  1371915            699920      48.98 %
  Physical Read Requests:             0                 0
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0                 0
  Physical Write Bytes:               0                 0
  Rows Processed:                   261               261
  Fetches:                          261               261
  Executions:                         1                 1
 
  Recommendation (estimated benefit: 99.98%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285384, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.48%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 50.86%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010036 on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010037 on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010038 on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010039 on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  1025
|   1 |  SORT ORDER BY                       |                          |  1025
|   2 |   HASH UNIQUE                        |                          |  1025
|   3 |    NESTED LOOPS OUTER                |                          |  1025
|   4 |     NESTED LOOPS OUTER               |                          |  1025
|*  5 |      HASH JOIN OUTER                 |                          |  1025
|*  6 |       HASH JOIN                      |                          |  1025
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |   256
|  12 |          NESTED LOOPS                |                          |   195
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   318
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              08:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              16:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  1025
|   1 |  SORT ORDER BY                       |                          |  1025
|   2 |   HASH UNIQUE                        |                          |  1025
|   3 |    NESTED LOOPS OUTER                |                          |  1025
|*  4 |     HASH JOIN                        |                          |    11
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |   256
|*  9 |       HASH JOIN RIGHT OUTER          |                          |   256
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |   256
|  13 |          NESTED LOOPS                |                          |   195
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   318
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   637K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   664K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |    95
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              08:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              16:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 1339093041
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |    4
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |    4
|   3 |    SORT ORDER BY                       |                          |    4
|   4 |     PX RECEIVE                         |                          |    4
|   5 |      PX SEND RANGE                     | :TQ10000                 |    4
|   6 |       NESTED LOOPS OUTER               |                          |    4
|   7 |        NESTED LOOPS                    |                          |
|   8 |         NESTED LOOPS OUTER             |                          |    1
|   9 |          NESTED LOOPS OUTER            |                          |    1
|  10 |           NESTED LOOPS                 |                          |    1
|  11 |            NESTED LOOPS                |                          |
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |
|* 15 |              INDEX RANGE SCAN          | IDX$$_00010036           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|  18 |           TABLE ACCESS BY INDEX ROWID  | REMPLANTYP               |
|* 19 |            INDEX UNIQUE SCAN           | REMPLANTYP_U             |
|* 20 |          TABLE ACCESS BY INDEX ROWID   | JITMANPLANPAR            |
|* 21 |           INDEX RANGE SCAN             | IDX$$_00010037           |    3
|* 22 |         TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |
|* 23 |          INDEX RANGE SCAN              | IDX$$_00010038           |
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |    9
|* 25 |         INDEX RANGE SCAN               | IDX$$_00010039           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-15 08:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-15 16:59:59')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  19 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  20 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F')
  21 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  22 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  23 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 257567112
 
--------------------------------------------------------------------------------
| Id  | Operation                                     | Name
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                              |
|   1 |  PX COORDINATOR                               |
|   2 |   PX SEND QC (ORDER)                          | :TQ10005
|   3 |    SORT ORDER BY                              |
|   4 |     HASH UNIQUE                               |
|   5 |      PX RECEIVE                               |
|   6 |       PX SEND RANGE                           | :TQ10004
|   7 |        BUFFER SORT                            |
|   8 |         NESTED LOOPS OUTER                    |
|*  9 |          HASH JOIN                            |
|  10 |           PX RECEIVE                          |
|  11 |            PX SEND HASH                       | :TQ10002
|  12 |             BUFFER SORT                       |
|  13 |              NESTED LOOPS OUTER               |
|* 14 |               HASH JOIN OUTER                 |
|  15 |                PX RECEIVE                     |
|  16 |                 PX SEND HASH                  | :TQ10000
|  17 |                  NESTED LOOPS                 |
|  18 |                   NESTED LOOPS                |
|  19 |                    NESTED LOOPS               |
|  20 |                     PX BLOCK ITERATOR         |
|* 21 |                      TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER
|* 22 |                     INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T
|* 23 |                    INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U
|* 24 |                   TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER
|  25 |                PX RECEIVE                     |
|  26 |                 PX SEND HASH                  | :TQ10001
|  27 |                  PX BLOCK ITERATOR            |
|* 28 |                   TABLE ACCESS STORAGE FULL   | JITMANPLANPAR
|  29 |               TABLE ACCESS BY INDEX ROWID     | REMPLANTYP
|* 30 |                INDEX UNIQUE SCAN              | REMPLANTYP_U
|  31 |           PX RECEIVE                          |
|  32 |            PX SEND HASH                       | :TQ10003
|  33 |             PX BLOCK ITERATOR                 |
|* 34 |              TABLE ACCESS STORAGE FULL        | BDMWORKCENTERHEADER
|* 35 |          TABLE ACCESS BY INDEX ROWID          | JITSHOPKBGATHER
|* 36 |           INDEX RANGE SCAN                    | JITSHOPKBGATHER_STRNO
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   9 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
  14 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND "APMACTUALS
  21 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  22 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  23 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  24 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
  28 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(+
  30 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  34 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  35 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  36 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285386
Schema Name: JC800
SQL ID     : 2mmg9gujrjaw4
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-IP'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-15 00:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 23:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-15 00:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 23:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建, 因为自动创建功能已禁用。请将任务参数 ACCEPT_SQL_PROFILES 设置为 TRUE 以启用自动创建功能。
 
  Recommendation (estimated benefit: 71.16%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285386, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):            25.30354          1.317776      94.79 %
  CPU Time (s):               25.226165          1.305803      94.82 %
  User I/O Time (s):                  0                 0
  Buffer Gets:                  2428742            700955      71.13 %
  Physical Read Requests:             0                 0
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0                 0
  Physical Write Bytes:               0                 0
  Rows Processed:                   456               456
  Fetches:                          456               456
  Executions:                         1                 1
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285386, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.34%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 89.94%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001003A on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001003B on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001003C on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001003D on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  1845
|   1 |  SORT ORDER BY                       |                          |  1845
|   2 |   HASH UNIQUE                        |                          |  1845
|   3 |    NESTED LOOPS OUTER                |                          |  1845
|   4 |     NESTED LOOPS OUTER               |                          |  1845
|*  5 |      HASH JOIN OUTER                 |                          |  1845
|*  6 |       HASH JOIN                      |                          |  1845
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |  1845
|  12 |          NESTED LOOPS                |                          |   390
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   637
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     5
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              00:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  1845
|   1 |  SORT ORDER BY                       |                          |  1845
|   2 |   HASH UNIQUE                        |                          |  1845
|   3 |    NESTED LOOPS OUTER                |                          |  1845
|*  4 |     HASH JOIN                        |                          |    78
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |  1845
|*  9 |       HASH JOIN RIGHT OUTER          |                          |  1845
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |  1845
|  13 |          NESTED LOOPS                |                          |   390
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   637
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     5
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   505K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   526K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |    24
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              00:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 1141879068
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |    2
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |    2
|   3 |    SORT ORDER BY                       |                          |    2
|   4 |     PX RECEIVE                         |                          |    2
|   5 |      PX SEND RANGE                     | :TQ10000                 |    2
|   6 |       NESTED LOOPS OUTER               |                          |    2
|   7 |        NESTED LOOPS OUTER              |                          |    2
|   8 |         NESTED LOOPS OUTER             |                          |    2
|   9 |          NESTED LOOPS                  |                          |    2
|  10 |           NESTED LOOPS                 |                          |    3
|  11 |            NESTED LOOPS                |                          |
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |
|* 15 |              INDEX RANGE SCAN          | IDX$$_0001003A           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 18 |           TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |
|* 19 |            INDEX RANGE SCAN            | IDX$$_0001003B           |
|  20 |          TABLE ACCESS BY INDEX ROWID   | REMPLANTYP               |
|* 21 |           INDEX UNIQUE SCAN            | REMPLANTYP_U             |
|* 22 |         TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |
|* 23 |          INDEX RANGE SCAN              | IDX$$_0001003C           |    3
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |
|* 25 |         INDEX RANGE SCAN               | IDX$$_0001003D           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-15 00:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-15 23:59:59')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  18 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  19 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  22 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP')
  23 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 936673233
 
--------------------------------------------------------------------------------
| Id  | Operation                                   | Name                     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                            |                          |
|   1 |  PX COORDINATOR                             |                          |
|   2 |   PX SEND QC (ORDER)                        | :TQ10006                 |
|   3 |    SORT ORDER BY                            |                          |
|   4 |     HASH UNIQUE                             |                          |
|   5 |      PX RECEIVE                             |                          |
|   6 |       PX SEND RANGE                         | :TQ10005                 |
|   7 |        NESTED LOOPS OUTER                   |                          |
|*  8 |         HASH JOIN                           |                          |
|*  9 |          HASH JOIN OUTER                    |                          |
|  10 |           PX RECEIVE                        |                          |
|  11 |            PX SEND HASH                     | :TQ10002                 |
|* 12 |             HASH JOIN OUTER BUFFERED        |                          |
|  13 |              PX RECEIVE                     |                          |
|  14 |               PX SEND HASH                  | :TQ10000                 |
|  15 |                NESTED LOOPS                 |                          |
|  16 |                 NESTED LOOPS                |                          |
|  17 |                  NESTED LOOPS               |                          |
|  18 |                   PX BLOCK ITERATOR         |                          |
|* 19 |                    TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER      |
|* 20 |                   INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T   |
|* 21 |                  INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 22 |                 TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|  23 |              PX RECEIVE                     |                          |
|  24 |               PX SEND HASH                  | :TQ10001                 |
|  25 |                PX BLOCK ITERATOR            |                          |
|* 26 |                 TABLE ACCESS STORAGE FULL   | REMPLANTYP               |
|  27 |           PX RECEIVE                        |                          |
|  28 |            PX SEND HASH                     | :TQ10003                 |
|  29 |             PX BLOCK ITERATOR               |                          |
|* 30 |              TABLE ACCESS STORAGE FULL      | JITMANPLANPAR            |
|  31 |          BUFFER SORT                        |                          |
|  32 |           PX RECEIVE                        |                          |
|  33 |            PX SEND BROADCAST                | :TQ10004                 |
|  34 |             PX BLOCK ITERATOR               |                          |
|* 35 |              TABLE ACCESS STORAGE FULL      | BDMWORKCENTERHEADER      |
|* 36 |         TABLE ACCESS BY INDEX ROWID         | JITSHOPKBGATHER          |
|* 37 |          INDEX RANGE SCAN                   | JITSHOPKBGATHER_STRNO    |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   8 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
   9 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND "APMACTUALS
  12 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND "APMACTUALS
  19 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  20 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  21 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  22 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
  26 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  30 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"(
  35 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  36 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  37 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285394
Schema Name: JC800
SQL ID     : cwuykgvjk0zn8
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-IP'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-13 12:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-13 23:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-13 12:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-13 23:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建, 因为经验证可获得的收益太少。
 
  Recommendation (estimated benefit: 26.2%)
  -----------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285394, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):           10.938684          1.332688      87.81 %
  CPU Time (s):               10.866348          1.326798      87.78 %
  User I/O Time (s):                  0                 0
  Buffer Gets:                   947344            699724      26.13 %
  Physical Read Requests:             0                 0
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0                 0
  Physical Write Bytes:               0                 0
  Rows Processed:                   177               177
  Fetches:                          177               177
  Executions:                         1                 1
 
  Recommendation (estimated benefit: 99.92%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285394, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.34%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 89.53%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001003E on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001003F on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010040 on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010041 on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |   205
|   1 |  SORT ORDER BY                       |                          |   205
|   2 |   HASH UNIQUE                        |                          |   205
|   3 |    NESTED LOOPS OUTER                |                          |   205
|   4 |     NESTED LOOPS OUTER               |                          |   205
|*  5 |      HASH JOIN OUTER                 |                          |   205
|*  6 |       HASH JOIN                      |                          |   205
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |   205
|  12 |          NESTED LOOPS                |                          |   781
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  1274
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              12:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |   205
|   1 |  SORT ORDER BY                       |                          |   205
|   2 |   HASH UNIQUE                        |                          |   205
|   3 |    NESTED LOOPS OUTER                |                          |   205
|*  4 |     HASH JOIN                        |                          |     9
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |   205
|*  9 |       HASH JOIN RIGHT OUTER          |                          |   205
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |   205
|  13 |          NESTED LOOPS                |                          |   781
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |  1274
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   505K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   526K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |    24
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              12:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 3142940409
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |
|   3 |    SORT ORDER BY                       |                          |
|   4 |     PX RECEIVE                         |                          |
|   5 |      PX SEND RANGE                     | :TQ10000                 |
|   6 |       NESTED LOOPS OUTER               |                          |
|   7 |        NESTED LOOPS                    |                          |
|   8 |         NESTED LOOPS OUTER             |                          |
|   9 |          NESTED LOOPS OUTER            |                          |
|  10 |           NESTED LOOPS                 |                          |
|  11 |            NESTED LOOPS                |                          |    2
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |    2
|* 15 |              INDEX RANGE SCAN          | IDX$$_0001003E           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|  18 |           TABLE ACCESS BY INDEX ROWID  | REMPLANTYP               |
|* 19 |            INDEX UNIQUE SCAN           | REMPLANTYP_U             |
|* 20 |          TABLE ACCESS BY INDEX ROWID   | JITMANPLANPAR            |
|* 21 |           INDEX RANGE SCAN             | IDX$$_0001003F           |    3
|* 22 |         TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |
|* 23 |          INDEX RANGE SCAN              | IDX$$_00010040           |
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |    2
|* 25 |         INDEX RANGE SCAN               | IDX$$_00010041           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-13 12:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-13 23:59:59')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  19 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  20 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP')
  21 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  22 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  23 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 257567112
 
--------------------------------------------------------------------------------
| Id  | Operation                                     | Name
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                              |
|   1 |  PX COORDINATOR                               |
|   2 |   PX SEND QC (ORDER)                          | :TQ10005
|   3 |    SORT ORDER BY                              |
|   4 |     HASH UNIQUE                               |
|   5 |      PX RECEIVE                               |
|   6 |       PX SEND RANGE                           | :TQ10004
|   7 |        BUFFER SORT                            |
|   8 |         NESTED LOOPS OUTER                    |
|*  9 |          HASH JOIN                            |
|  10 |           PX RECEIVE                          |
|  11 |            PX SEND HASH                       | :TQ10002
|  12 |             BUFFER SORT                       |
|  13 |              NESTED LOOPS OUTER               |
|* 14 |               HASH JOIN OUTER                 |
|  15 |                PX RECEIVE                     |
|  16 |                 PX SEND HASH                  | :TQ10000
|  17 |                  NESTED LOOPS                 |
|  18 |                   NESTED LOOPS                |
|  19 |                    NESTED LOOPS               |
|  20 |                     PX BLOCK ITERATOR         |
|* 21 |                      TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER
|* 22 |                     INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T
|* 23 |                    INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U
|* 24 |                   TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER
|  25 |                PX RECEIVE                     |
|  26 |                 PX SEND HASH                  | :TQ10001
|  27 |                  PX BLOCK ITERATOR            |
|* 28 |                   TABLE ACCESS STORAGE FULL   | JITMANPLANPAR
|  29 |               TABLE ACCESS BY INDEX ROWID     | REMPLANTYP
|* 30 |                INDEX UNIQUE SCAN              | REMPLANTYP_U
|  31 |           PX RECEIVE                          |
|  32 |            PX SEND HASH                       | :TQ10003
|  33 |             PX BLOCK ITERATOR                 |
|* 34 |              TABLE ACCESS STORAGE FULL        | BDMWORKCENTERHEADER
|* 35 |          TABLE ACCESS BY INDEX ROWID          | JITSHOPKBGATHER
|* 36 |           INDEX RANGE SCAN                    | JITSHOPKBGATHER_STRNO
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   9 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
  14 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND "APMACTUALS
  21 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  22 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  23 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  24 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
  28 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP' AND "JITMANPLAN2_"."CLIENT"(
  30 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  34 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  35 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  36 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285401
Schema Name: JC800
SQL ID     : afj3g84dj8hug
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-F'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-14 17:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 23:00:00'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-14 17:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 23:00:00' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建。
 
  Recommendation (estimated benefit: 98.86%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285401, task_owner =>
            'SYS', replace => TRUE);
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285401, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.47%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 51.34%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.99%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010044 on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010045 on JC800.BDMWORKCENTERHEADER("PLANT","OBJ
    ECTID");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010046 on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010047 on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
ERRORS SECTION
-------------------------------------------------------------------------------
- 当前操作因超时而中断。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  2152
|   1 |  SORT ORDER BY                       |                          |  2152
|   2 |   HASH UNIQUE                        |                          |  2152
|   3 |    NESTED LOOPS OUTER                |                          |  2152
|   4 |     NESTED LOOPS OUTER               |                          |  2152
|*  5 |      HASH JOIN OUTER                 |                          |  2152
|*  6 |       HASH JOIN                      |                          |  2152
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |  2152
|  12 |          NESTED LOOPS                |                          |   390
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   637
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     6
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              17:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:00:00' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using SQL Profile
--------------------
Plan hash value: 411885422
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |    91
|   1 |  SORT ORDER BY                       |                          |    91
|   2 |   HASH UNIQUE                        |                          |    91
|   3 |    NESTED LOOPS OUTER                |                          |    91
|*  4 |     HASH JOIN                        |                          |    91
|   5 |      INLIST ITERATOR                 |                          |
|*  6 |       TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |     1
|*  7 |        INDEX RANGE SCAN              | BDMWORKCENTERHEADER_WKC  |     2
|*  8 |      HASH JOIN OUTER                 |                          |  2152
|*  9 |       HASH JOIN RIGHT OUTER          |                          |  2152
|* 10 |        TABLE ACCESS STORAGE FULL     | REMPLANTYP               |   598
|  11 |        NESTED LOOPS                  |                          |
|  12 |         NESTED LOOPS                 |                          |  2152
|  13 |          NESTED LOOPS                |                          |   390
|* 14 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 15 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 16 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   637
|* 17 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 18 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     6
|  19 |       TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |   637K
|* 20 |        INDEX RANGE SCAN              | JITMANPLANPAR_U          |   664K
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   4 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   6 - filter("BDMWORKCEN4_"."PLANT"='001')
   7 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
   8 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
   9 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
  10 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  14 - filter("BDMWORKCEN5_"."PLANT"='001')
  15 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  16 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              17:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:00:00' AND "APMACTUALS1_"."CLIENT"='800')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  18 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using New Indices
--------------------
Plan hash value: 1207041338
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |    7
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |    7
|   3 |    SORT ORDER BY                       |                          |    7
|   4 |     PX RECEIVE                         |                          |    7
|   5 |      PX SEND RANGE                     | :TQ10000                 |    7
|   6 |       NESTED LOOPS OUTER               |                          |    7
|   7 |        NESTED LOOPS OUTER              |                          |    7
|   8 |         NESTED LOOPS OUTER             |                          |    7
|   9 |          NESTED LOOPS                  |                          |    7
|  10 |           NESTED LOOPS                 |                          |    8
|  11 |            NESTED LOOPS                |                          |    1
|  12 |             PX BLOCK ITERATOR          |                          |
|* 13 |              TABLE ACCESS STORAGE FULL | BDMWORKCENTERHEADER      |
|* 14 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |    1
|* 15 |              INDEX RANGE SCAN          | IDX$$_00010044           |   21
|* 16 |            TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|* 17 |             INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 18 |           TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |
|* 19 |            INDEX RANGE SCAN            | IDX$$_00010045           |
|  20 |          TABLE ACCESS BY INDEX ROWID   | REMPLANTYP               |
|* 21 |           INDEX UNIQUE SCAN            | REMPLANTYP_U             |
|* 22 |         TABLE ACCESS BY INDEX ROWID    | JITMANPLANPAR            |
|* 23 |          INDEX RANGE SCAN              | IDX$$_00010046           |    3
|* 24 |        TABLE ACCESS BY INDEX ROWID     | JITSHOPKBGATHER          |
|* 25 |         INDEX RANGE SCAN               | IDX$$_00010047           |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  13 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  14 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  15 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-14 17:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-15 23:00:00')
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  18 - filter("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  19 - access("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  21 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  22 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F')
  23 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
  24 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  25 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND "JITMANPLAN
              AND "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
4- Using Parallel Execution
---------------------------
Plan hash value: 936673233
 
--------------------------------------------------------------------------------
| Id  | Operation                                   | Name                     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                            |                          |
|   1 |  PX COORDINATOR                             |                          |
|   2 |   PX SEND QC (ORDER)                        | :TQ10006                 |
|   3 |    SORT ORDER BY                            |                          |
|   4 |     HASH UNIQUE                             |                          |
|   5 |      PX RECEIVE                             |                          |
|   6 |       PX SEND RANGE                         | :TQ10005                 |
|   7 |        NESTED LOOPS OUTER                   |                          |
|*  8 |         HASH JOIN                           |                          |
|*  9 |          HASH JOIN OUTER                    |                          |
|  10 |           PX RECEIVE                        |                          |
|  11 |            PX SEND HASH                     | :TQ10002                 |
|* 12 |             HASH JOIN OUTER BUFFERED        |                          |
|  13 |              PX RECEIVE                     |                          |
|  14 |               PX SEND HASH                  | :TQ10000                 |
|  15 |                NESTED LOOPS                 |                          |
|  16 |                 NESTED LOOPS                |                          |
|  17 |                  NESTED LOOPS               |                          |
|  18 |                   PX BLOCK ITERATOR         |                          |
|* 19 |                    TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER      |
|* 20 |                   INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T   |
|* 21 |                  INDEX UNIQUE SCAN          | APMACTUALSEQDATAHEADER_U |
|* 22 |                 TABLE ACCESS BY INDEX ROWID | APMACTUALSEQDATAHEADER   |
|  23 |              PX RECEIVE                     |                          |
|  24 |               PX SEND HASH                  | :TQ10001                 |
|  25 |                PX BLOCK ITERATOR            |                          |
|* 26 |                 TABLE ACCESS STORAGE FULL   | REMPLANTYP               |
|  27 |           PX RECEIVE                        |                          |
|  28 |            PX SEND HASH                     | :TQ10003                 |
|  29 |             PX BLOCK ITERATOR               |                          |
|* 30 |              TABLE ACCESS STORAGE FULL      | JITMANPLANPAR            |
|  31 |          BUFFER SORT                        |                          |
|  32 |           PX RECEIVE                        |                          |
|  33 |            PX SEND BROADCAST                | :TQ10004                 |
|  34 |             PX BLOCK ITERATOR               |                          |
|* 35 |              TABLE ACCESS STORAGE FULL      | BDMWORKCENTERHEADER      |
|* 36 |         TABLE ACCESS BY INDEX ROWID         | JITSHOPKBGATHER          |
|* 37 |          INDEX RANGE SCAN                   | JITSHOPKBGATHER_STRNO    |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   8 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND "APMACTUALS0_"
   9 - access("APMACTUALS0_"."CLIENT"="JITMANPLAN2_"."CLIENT"(+) AND "APMACTUALS
  12 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND "APMACTUALS
  19 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  20 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  21 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              "APMACTUALS0_"."CLIENT"='800')
  22 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
  26 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  30 - storage("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(
       filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-F' AND "JITMANPLAN2_"."CLIENT"(+
  35 - storage(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCEN
       filter(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
  36 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  37 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
 
-------------------------------------------------------------------------------
Object ID  : 285361
Schema Name: JC800
SQL ID     : f5cvrktvp7frz
SQL Text   : select distinct apmactuals0_.APMActualSeqDataHeaderID as
             APMActua1_0_, jitmanplan2_.JITManPlanParID as JITManPl1_1_,
             jitshopkbg3_.JITShopKBGatherID as JITShopK1_2_,
             apmactuals0_.planLineDate as planLine2_0_,
             apmactuals0_.periodNum as periodNum0_, apmactuals0_.styleID as
             styleID0_, apmactuals0_.client as client0_,
             apmactuals0_.bodyNumDesignation as bodyNumD6_0_,
             apmactuals0_.CpMaterialNO as CpMateri7_0_,
             apmactuals0_.notFullCarID as notFullC8_0_, apmactuals0_.speID as
             speID0_, apmactuals0_.productType as product10_0_,
             apmactuals0_.colour as colour0_, apmactuals0_.recoilCompleteID
             as recoilC12_0_, apmactuals0_.fatherMateNO as fatherM13_0_,
             apmactuals0_.productLine as product14_0_, apmactuals0_.planSeqNO
             as planSeqNO0_, apmactuals0_.description as descrip16_0_,
             apmactuals0_.keyID as keyID0_, apmactuals0_.OPENOUTID as
             OPENOUTID0_, apmactuals0_.proportionFinger as proport19_0_,
             apmactuals0_.frontFoglight as frontFo20_0_, apmactuals0_.crapID
             as crapID0_, apmactuals0_.denoteNode as denoteNode0_,
             apmactuals0_.actualLineTime as actualL23_0_,
             apmactuals0_.proportionFingerNO as proport24_0_,
             apmactuals0_.gatherQty as gatherQty0_,
             apmactuals0_.fatherMateSeqNO as fatherM26_0_,
             apmactuals0_.actualSeqNO as actualS27_0_,
             apmactuals0_.assembleNumDesignation as assembl28_0_,
             apmactuals0_.paintyDesignation as paintyD29_0_,
             apmactuals0_.producteVersion as product30_0_, apmactuals0_.SFX
             as SFX0_, apmactuals0_.nonceStatus as nonceSt32_0_,
             apmactuals0_.factory as factory0_, apmactuals0_.batchNO as
             batchNO0_, apmactuals0_.purOrgBlock as purOrgB35_0_,
             apmactuals0_.actualLineDate as actualL36_0_,
             apmactuals0_.yieldly as yieldly0_, jitmanplan2_.plant as
             plant1_, jitmanplan2_.periodNO as periodNO1_,
             jitmanplan2_.extNum as extNum1_, jitmanplan2_.strateBatchNO as
             strateBa5_1_, jitmanplan2_.client as client1_,
             jitmanplan2_.goBatNum as goBatNum1_, jitmanplan2_.createdBy as
             createdBy1_, jitmanplan2_.productLine as productL9_1_,
             jitmanplan2_.quotaGroup as quotaGroup1_, jitmanplan2_.strategy
             as strategy1_, jitmanplan2_.proportionFinger as proport12_1_,
             jitshopkbg3_.intArea as intArea2_, jitshopkbg3_.CLIENT as
             CLIENT2_, jitshopkbg3_.remark as remark2_,
             jitshopkbg3_.inceptKBID as inceptKBID2_, jitshopkbg3_.prtTimes
             as prtTimes2_, jitshopkbg3_.auditPerson as auditPer7_2_,
             jitshopkbg3_.CREATER as CREATER2_, jitshopkbg3_.extKBTyp as
             extKBTyp2_, jitshopkbg3_.procBatchNO as procBat10_2_,
             jitshopkbg3_.productExplain as product11_2_,
             jitshopkbg3_.bargainPass as bargain12_2_,
             jitshopkbg3_.externalPurStorage as externa13_2_,
             jitshopkbg3_.inceptKBDate as inceptK14_2_, jitshopkbg3_.extNum
             as extNum2_, jitshopkbg3_.gatherGoodsDocNo as gatherG16_2_,
             jitshopkbg3_.goBatNum as goBatNum2_, jitshopkbg3_.salverID as
             salverID2_, jitshopkbg3_.sendCostCen as sendCos19_2_,
             jitshopkbg3_.goodsIssueTime as goodsIs20_2_,
             jitshopkbg3_.getGdsSals as getGdsSals2_,
             jitshopkbg3_.deliveryDate as deliver22_2_,
             jitshopkbg3_.lastMimeographDate as lastMim23_2_,
             jitshopkbg3_.HZNO as HZNO2_, jitshopkbg3_.recptDate as
             recptDate2_, jitshopkbg3_.mimeographer as mimeogr26_2_,
             jitshopkbg3_.intAreaChannel as intArea27_2_,
             jitshopkbg3_.releasePerson as release28_2_, jitshopkbg3_.batNO
             as batNO2_, jitshopkbg3_.runNum as runNum2_,
             jitshopkbg3_.signPerson as signPerson2_, jitshopkbg3_.tipCheFile
             as tipCheFile2_, jitshopkbg3_.handyHypoNum as handyHy33_2_,
             jitshopkbg3_.sendSellStoreroom as sendSel34_2_,
             jitshopkbg3_.autoKDId as autoKDId2_, jitshopkbg3_.getCostCen as
             getCostCen2_, jitshopkbg3_.deliveryTime as deliver37_2_,
             jitshopkbg3_.recorder as recorder2_, jitshopkbg3_.priOverID as
             priOverID2_, jitshopkbg3_.victualer as victualer2_,
             jitshopkbg3_.stopPlace as stopPlace2_, jitshopkbg3_.plant as
             plant2_, jitshopkbg3_.Liftdate as Liftdate2_,
             jitshopkbg3_.prodLine as prodLine2_, jitshopkbg3_.CREATETIME as
             CREATETIME2_, jitshopkbg3_.consignee as consignee2_,
             jitshopkbg3_.postDate as postDate2_, jitshopkbg3_.state as
             state2_, jitshopkbg3_.customerNo as customerNo2_,
             jitshopkbg3_.ordNO as ordNO2_, jitshopkbg3_.mimeographID as
             mimeogr51_2_, jitshopkbg3_.exteriorTypes as exterio52_2_,
             jitshopkbg3_.purposeKB as purposeKB2_, jitshopkbg3_.splitKBID as
             splitKBID2_, jitshopkbg3_.issuePlant as issuePlant2_,
             jitshopkbg3_.fitPro as fitPro2_, jitshopkbg3_.packSeqNum as
             packSeqNum2_, jitshopkbg3_.strateBatchNO as strateB58_2_,
             jitshopkbg3_.arrData as arrData2_, jitshopkbg3_.shopKBType as
             shopKBType2_, jitshopkbg3_.strategy as strategy2_,
             jitshopkbg3_.saleDisNum as saleDisNum2_, jitshopkbg3_.shopKBNO
             as shopKBNO2_, jitshopkbg3_.materielGroup as materie64_2_,
             jitshopkbg3_.updateDate as updateDate2_, jitshopkbg3_.balKBWay
             as balKBWay2_, jitshopkbg3_.storageType as storage67_2_,
             jitshopkbg3_.consigner as consigner2_,
             jitshopkbg3_.consignerDesc as consign69_2_, jitshopkbg3_.exeDate
             as exeDate2_, apmactuals0_.APMActualSeqDataHeaderID as x0_0_,
             jitmanplan2_.JITManPlanParID as x1_0_,
             jitshopkbg3_.JITShopKBGatherID as x2_0_, apmactuals1_.scanDate
             as x3_0_, apmactuals1_.scanTime as x4_0_, apmactuals1_.scanPoint
             as x5_0_, remplantyp6_.structureTypeNam as x6_0_ from
             APMActualSeqDataHeader apmactuals0_, APMActualSeqDataItem
             apmactuals1_, JITManPlanPar jitmanplan2_, JITShopKBGather
             jitshopkbg3_, BDMWorkCenterHeader bdmworkcen4_,
             BDMWorkCenterHeader bdmworkcen5_, REMPlanTyp remplantyp6_ where
             (apmactuals0_.client='800' )and(apmactuals0_.factory='001'
             )and(apmactuals0_.client=remplantyp6_.client(+))and(apmactuals0_.
             productType=remplantyp6_.structureType(+))and(apmactuals0_.client
             =apmactuals1_.client )and(apmactuals0_.client=jitmanplan2_.client
             (+))and(jitmanplan2_.client=jitshopkbg3_.CLIENT(+))and(apmactuals
             0_.factory=bdmworkcen4_.plant )and(apmactuals0_.factory=bdmworkce
             n5_.plant )and(apmactuals0_.productLine=bdmworkcen4_.objectID
             )and(bdmworkcen4_.workCenter in('2TTL001' ,
             '1TTL001'))and(apmactuals0_.factory=bdmworkcen4_.plant
             )and(apmactuals1_.scanPoint=bdmworkcen5_.objectID
             )and(bdmworkcen5_.workCenter='2T09009'
             )and(apmactuals0_.factory=bdmworkcen5_.plant
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.proportionFinger=jitmanplan2_.proportionFinger(
             +))and(jitmanplan2_.strategy(+)='SPS-IP'
             )and(jitmanplan2_.strateBatchNO=jitshopkbg3_.strateBatchNO(+))and
             (jitmanplan2_.strategy=jitshopkbg3_.strategy(+))and(jitshopkbg3_.
             shopKBType(+)='4' )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null
             )and(jitshopkbg3_.purposeKB(+)='01'
             )and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-15 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 23:59:59'
             ))))and((((to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')>='2017-02-15 08:00:00'
             )and(to_char(apmactuals1_.scanTime , 'yyyy-MM-dd
             HH24:mi:ss')<='2017-02-15 23:59:59' )))) order by
             apmactuals1_.scanDate desc , apmactuals1_.scanTime desc ,
             jitshopkbg3_.salverID
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划。
 
  Recommendation (estimated benefit: 99.96%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285361, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使原始计划上的响应时间缩短 99.96%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗 (预计为
  88.89%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.85%)
  ------------------------------------------
  - 考虑运行访问指导以改进物理方案设计或者创建推荐的索引。如果选择创建推荐的索引, 请考虑删除索引
    "JC800"."BDMWORKCENTERHEADER_WKC", 因为它是推荐的索引的前缀。
    create index JC800.IDX$$_0001001C on JC800.BDMWORKCENTERHEADER("WORKCENTER"
    ,"PLANT");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001001D on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANTIME",'yyyy-MM-dd HH24:mi:ss'));
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001001E on JC800.JITMANPLANPAR("CLIENT","PROPORTI
    ONFINGER");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001001F on JC800.JITSHOPKBGATHER("CLIENT","STRATE
    BATCHNO","STRATEGY");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original
-----------
Plan hash value: 2265137696
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |    17
|   1 |  SORT ORDER BY                       |                          |    17
|   2 |   HASH UNIQUE                        |                          |    17
|   3 |    NESTED LOOPS OUTER                |                          |    17
|   4 |     NESTED LOOPS OUTER               |                          |    17
|*  5 |      HASH JOIN OUTER                 |                          |    17
|*  6 |       HASH JOIN                      |                          |    17
|   7 |        INLIST ITERATOR               |                          |
|*  8 |         TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1
|*  9 |          INDEX RANGE SCAN            | BDMWORKCENTERHEADER_WKC  |     2
|  10 |        NESTED LOOPS                  |                          |
|  11 |         NESTED LOOPS                 |                          |   404
|  12 |          NESTED LOOPS                |                          |   404
|* 13 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 14 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 15 |           INDEX RANGE SCAN           | APMACTUALSEQDATAITEM_T   |   659
|* 16 |          INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1
|* 17 |         TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1
|* 18 |       TABLE ACCESS STORAGE FULL      | REMPLANTYP               |   598
|  19 |      TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1
|* 20 |       INDEX RANGE SCAN               | JITMANPLANPAR_U          |     1
|* 21 |     TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1
|* 22 |      INDEX RANGE SCAN                | JITSHOPKBGATHER_STRNO    |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."CLIENT"="REMPLANTYP6_"."CLIENT"(+) AND
              "APMACTUALS0_"."PRODUCTTYPE"="REMPLANTYP6_"."STRUCTURETYPE"(+))
   6 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
   8 - filter("BDMWORKCEN4_"."PLANT"='001')
   9 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  13 - filter("BDMWORKCEN5_"."PLANT"='001')
  14 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009')
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              08:00:00' AND TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME")
              23:59:59' AND "APMACTUALS1_"."CLIENT"='800')
  16 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  18 - storage("REMPLANTYP6_"."CLIENT"(+)='800')
       filter("REMPLANTYP6_"."CLIENT"(+)='800')
  20 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  21 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  22 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
2- Using New Indices
--------------------
Plan hash value: 3092024913
 
--------------------------------------------------------------------------------
| Id  | Operation                           | Name                     | Rows  |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                    |                          |     1 |
|   1 |  SORT ORDER BY                      |                          |     1 |
|   2 |   NESTED LOOPS OUTER                |                          |     1 |
|   3 |    NESTED LOOPS OUTER               |                          |     1 |
|   4 |     NESTED LOOPS OUTER              |                          |     1 |
|*  5 |      HASH JOIN                      |                          |     1 |
|   6 |       NESTED LOOPS                  |                          |       |
|   7 |        NESTED LOOPS                 |                          |     2 |
|   8 |         NESTED LOOPS                |                          |     2 |
|   9 |          TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1 |
|* 10 |           INDEX RANGE SCAN          | IDX$$_0001001C           |     1 |
|* 11 |          TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |     3 |
|* 12 |           INDEX RANGE SCAN          | IDX$$_0001001D           |   214 |
|* 13 |         INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1 |
|* 14 |        TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1 |
|  15 |       INLIST ITERATOR               |                          |       |
|  16 |        TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1 |
|* 17 |         INDEX RANGE SCAN            | IDX$$_0001001C           |     1 |
|  18 |      TABLE ACCESS BY INDEX ROWID    | REMPLANTYP               |     1 |
|* 19 |       INDEX UNIQUE SCAN             | REMPLANTYP_U             |     1 |
|* 20 |     TABLE ACCESS BY INDEX ROWID     | JITMANPLANPAR            |     1 |
|* 21 |      INDEX RANGE SCAN               | IDX$$_0001001E           |    33 |
|* 22 |    TABLE ACCESS BY INDEX ROWID      | JITSHOPKBGATHER          |     1 |
|* 23 |     INDEX RANGE SCAN                | IDX$$_0001001F           |     1 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - access("APMACTUALS0_"."FACTORY"="BDMWORKCEN4_"."PLANT" AND
              "APMACTUALS0_"."PRODUCTLINE"="BDMWORKCEN4_"."OBJECTID")
  10 - access("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  11 - filter("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANPOINT"="BDMW
  12 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5003">='2017-02-15 08:00:00' A
              "APMACTUALSEQDATAITEM"."qsmmix_VCol_5003"<='2017-02-15 23:59:59')
  13 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  14 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access(("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENT
              "BDMWORKCEN4_"."PLANT"='001')
  19 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
              ETYPE"(+))
  20 - filter("JITMANPLAN2_"."STRATEGY"(+)='SPS-IP')
  21 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PROPORTIONFIN
              PORTIONFINGER"(+))
  22 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
  23 - access("JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+) AND
              "JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
3- Using Parallel Execution
---------------------------
Plan hash value: 3490606343
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                          |
|   1 |  PX COORDINATOR                        |                          |
|   2 |   PX SEND QC (ORDER)                   | :TQ10001                 |
|   3 |    SORT ORDER BY                       |                          |
|   4 |     HASH UNIQUE                        |                          |
|   5 |      PX RECEIVE                        |                          |
|   6 |       PX SEND RANGE                    | :TQ10000                 |
|   7 |        NESTED LOOPS OUTER              |                          |
|   8 |         NESTED LOOPS OUTER             |                          |
|   9 |          NESTED LOOPS OUTER            |                          |
|  10 |           NESTED LOOPS                 |                          |
|  11 |            NESTED LOOPS                |                          |    2
|  12 |             NESTED LOOPS               |                          |    2
|  13 |              PX BLOCK ITERATOR         |                          |
|* 14 |               TABLE ACCESS STORAGE FULL| BDMWORKCENTERHEADER      |
|* 15 |              INDEX RANGE SCAN          | APMACTUALSEQDATAITEM_T   |    2
|* 16 |             TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAHEADER   |
|* 17 |              INDEX UNIQUE SCAN         | APMACTUALSEQDATAHEADER_U |
|  18 |            INLIST ITERATOR             |                          |
|* 19 |             TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |
|* 20 |              INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |
|  21 |           TABLE ACCESS BY INDEX ROWID  | REMPLANTYP               |
|* 22 |            INDEX UNIQUE SCAN           | REMPLANTYP_U             |
|  23 |          TABLE ACCESS BY INDEX ROWID   | JITMANPLANPAR            |
|* 24 |           INDEX RANGE SCAN             | JITMANPLANPAR_U          |
|* 25 |         TABLE ACCESS BY INDEX ROWID    | JITSHOPKBGATHER          |
|* 26 |          INDEX RANGE SCAN              | JITSHOPKBGATHER_STRNO    |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  14 - storage("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"=
       filter("BDMWORKCEN5_"."WORKCENTER"='2T09009' AND "BDMWORKCEN5_"."PLANT"='
  15 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN5_"."OBJECTID" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
              TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANTIME"),'yyyy-MM-dd H
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND "APM
              AND "APMACTUALS0_"."CLIENT"='800')
  19 - filter("BDMWORKCEN4_"."PLANT"='001' AND "APMACTUALS0_"."PRODUCTLINE"="BDM
  20 - access("BDMWORKCEN4_"."WORKCENTER"='1TTL001' OR "BDMWORKCEN4_"."WORKCENTE
  22 - access("REMPLANTYP6_"."CLIENT"(+)='800' AND "APMACTUALS0_"."PRODUCTTYPE"=
  24 - access("JITMANPLAN2_"."CLIENT"(+)='800' AND "JITMANPLAN2_"."STRATEGY"(+)=
              "APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
       filter("APMACTUALS0_"."PROPORTIONFINGER"="JITMANPLAN2_"."PROPORTIONFINGER
  25 - filter("JITSHOPKBG3_"."PURPOSEKB"(+)='01' AND "JITSHOPKBG3_"."SHOPKBTYPE"
              "JITMANPLAN2_"."CLIENT"="JITSHOPKBG3_"."CLIENT"(+))
  26 - access("JITMANPLAN2_"."STRATEBATCHNO"="JITSHOPKBG3_"."STRATEBATCHNO"(+) A
              "JITMANPLAN2_"."STRATEGY"="JITSHOPKBG3_"."STRATEGY"(+))
 
-------------------------------------------------------------------------------
Object ID  : 285278
Schema Name: JC800
SQL ID     : gq24u0zyq45mx
SQL Text   : MERGE INTO JITACCSYKBTRUINFO A USING ( SELECT KANBAN_CODE,
             LINENO, MTL_CODE, SHIPQTY, '' CASE_CODE, ORDER_TYPE, DI_BATCHNO,
             DI_UPDATETIME, DI_OPERTYPE, OWNER_CODE FROM
             DI_T_KANBAN_LINES@HZ50 WHERE DI_BATCHNO > :B2 -20 AND DI_BATCHNO
             <= :B1 ) B ON (A.LOOKNO = B.KANBAN_CODE AND A.LINENO = B.LINENO)
             WHEN MATCHED THEN UPDATE SET A.MTLNO = B.MTL_CODE, A.SENDQTY =
             B.SHIPQTY, A.CASENO = B.CASE_CODE, A.OUTSTORTYP = B.ORDER_TYPE,
             A.SYNJOB = B.DI_BATCHNO, A.SYNDATE = B.DI_UPDATETIME, A.SYNTYP =
             B.DI_OPERTYPE, A.VENDORNO=B.OWNER_CODE WHEN NOT MATCHED THEN
             INSERT (JITACCSYKBTRUINFOID, LOOKNO, A.LINENO, MTLNO, SENDQTY,
             CASENO, OUTSTORTYP, SYNJOB, SYNDATE, SYNTYP, CLIENT,VENDORNO)
             VALUES (JITACCSYKBTRUINFO_S.NEXTVAL, KANBAN_CODE, B.LINENO,
             MTL_CODE, SHIPQTY, CASE_CODE, ORDER_TYPE, DI_BATCHNO,
             DI_UPDATETIME, DI_OPERTYPE, (SELECT CLIENT FROM ADCLIENT WHERE
             ROWNUM < 2),B.OWNER_CODE)
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划。
  SQL profile 未自动创建, 因为经验证可获得的收益太少。
 
  Recommendation (estimated benefit: 41.68%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285278, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):            1.022934           .815139      20.31 %
  CPU Time (s):                    .006           .003499      41.68 %
  User I/O Time (s):                  0                 0
  Buffer Gets:                        0                 0
  Physical Read Requests:             0                 0
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0                 0
  Physical Write Bytes:               0                 0
  Rows Processed:                     0                 0
  Fetches:                            0                 0
  Executions:                         1                 1
 
  Notes
  -----
  1. the original plan 的统计信息是 1 执行的平均值。
  2. the SQL profile plan 的统计信息是 2 执行的平均值。
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.79%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010003 on JC800.JITACCSYKBTRUINFO(SYS_OP_C2C("LI
    NENO"),SYS_OP_C2C("LOOKNO"));
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
ADDITIONAL INFORMATION SECTION
-------------------------------------------------------------------------------
- 优化程序不能合并位于执行计划的行 ID 4 处的视图。. 优化程序不能合并包含 NO_MERGE 提示的视图。.
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 1194574794
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                | Rows  | B
--------------------------------------------------------------------------------
|   0 | MERGE STATEMENT                        |                     | 45751 |
|   1 |  MERGE                                 | JITACCSYKBTRUINFO   |       |
|*  2 |   COUNT STOPKEY                        |                     |       |
|   3 |    TABLE ACCESS STORAGE FULL FIRST ROWS| ADCLIENT            |     1 |
|   4 |   VIEW                                 |                     |       |
|   5 |    SEQUENCE                            | JITACCSYKBTRUINFO_S |       |
|*  6 |     FILTER                             |                     |       |
|*  7 |      HASH JOIN OUTER                   |                     | 45751 |
|   8 |       REMOTE                           | DI_T_KANBAN_LINES   |    33 | 1
|   9 |       TABLE ACCESS STORAGE FULL        | JITACCSYKBTRUINFO   |    13M|
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter(ROWNUM<2)
   6 - filter(:B2-20<:B1)
   7 - access("LINENO"=SYS_OP_C2C("A"."LINENO"(+)) AND "KANBAN_CODE"=SYS_OP_C2C(
 
Remote SQL Information (identified by operation id):
----------------------------------------------------
 
   8 - SELECT /*+ ALL_ROWS FULL ("DI_T_KANBAN_LINES") */ "KANBAN_CODE","LINENO",
       BATCHNO","DI_UPDATETIME","DI_OPERTYPE","OWNER_CODE" FROM "DI_T_KANBAN_LIN
       "DI_BATCHNO"<=:1 AND "DI_BATCHNO">:2 (accessing 'HZ50' )
 
 
2- Using SQL Profile
--------------------
Plan hash value: 3303353975
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                | Rows  | B
--------------------------------------------------------------------------------
|   0 | MERGE STATEMENT                        |                     | 13864 |
|   1 |  MERGE                                 | JITACCSYKBTRUINFO   |       |
|*  2 |   COUNT STOPKEY                        |                     |       |
|   3 |    TABLE ACCESS STORAGE FULL FIRST ROWS| ADCLIENT            |     1 |
|   4 |   VIEW                                 |                     |       |
|   5 |    SEQUENCE                            | JITACCSYKBTRUINFO_S |       |
|*  6 |     HASH JOIN OUTER                    |                     | 13864 |
|   7 |      REMOTE                            | DI_T_KANBAN_LINES   |    10 |
|   8 |      TABLE ACCESS STORAGE FULL         | JITACCSYKBTRUINFO   |    13M|
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter(ROWNUM<2)
   6 - access("LINENO"=SYS_OP_C2C("A"."LINENO"(+)) AND "KANBAN_CODE"=SYS_OP_C2C(
 
Remote SQL Information (identified by operation id):
----------------------------------------------------
 
   7 - SELECT /*+ */ "KANBAN_CODE","LINENO","MTL_CODE","SHIPQTY","ORDER_TYPE","D
       IME","DI_OPERTYPE","OWNER_CODE" FROM "DI_T_KANBAN_LINES" "DI_T_KANBAN_LIN
       AND "DI_BATCHNO"<=:2 (accessing 'HZ50' )
 
 
3- Using New Indices
--------------------
Plan hash value: 434387297
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                | Rows  | B
--------------------------------------------------------------------------------
|   0 | MERGE STATEMENT                        |                     | 13864 |
|   1 |  MERGE                                 | JITACCSYKBTRUINFO   |       |
|*  2 |   COUNT STOPKEY                        |                     |       |
|   3 |    TABLE ACCESS STORAGE FULL FIRST ROWS| ADCLIENT            |     1 |
|   4 |   VIEW                                 |                     |       |
|   5 |    SEQUENCE                            | JITACCSYKBTRUINFO_S |       |
|   6 |     NESTED LOOPS OUTER                 |                     | 13864 |
|   7 |      REMOTE                            | DI_T_KANBAN_LINES   |    10 |
|   8 |      TABLE ACCESS BY INDEX ROWID       | JITACCSYKBTRUINFO   |  1386 |
|*  9 |       INDEX RANGE SCAN                 | IDX$$_00010003      |   222 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter(ROWNUM<2)
   9 - access("LINENO"="JITACCSYKBTRUINFO"."qsmmix_VCol_5001"(+) AND
              "KANBAN_CODE"="JITACCSYKBTRUINFO"."qsmmix_VCol_5002"(+))
 
Remote SQL Information (identified by operation id):
----------------------------------------------------
 
   7 - SELECT /*+ */ "KANBAN_CODE","LINENO","MTL_CODE","SHIPQTY","ORDER_TYPE","D
       IME","DI_OPERTYPE","OWNER_CODE" FROM "DI_T_KANBAN_LINES" "DI_T_KANBAN_LIN
       AND "DI_BATCHNO"<=:2 (accessing 'HZ50' )
 
 
-------------------------------------------------------------------------------
Object ID  : 285397
Schema Name: JC800
SQL ID     : 2fb5gtqh0cbh1
SQL Text   : select b.docno,b.fiscalyear,b.docLineNO from PIVInvRcpDocHeader
             a,PIVIncomInvDocItem b where a.docno=b.docno and
             A.FISCALYEAR=b.fiscalYear and a.invoiceDocStatus='A5'
             and B.PURDOCNO is not null and not exists
              (select 1 from purdochistory c where (c.transationType='2' or
             c.transationType='3') and b.docno=c.docno and
             b.docLineNO=c.docLineNO and b.FISCALYEAR=c.fiscalYear )
               order by b.fiscalyear desc
 
-------------------------------------------------------------------------------
FINDINGS SECTION (1 finding)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。
  SQL profile 未自动创建。
 
  Recommendation (estimated benefit: 16%)
  ---------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285397, task_owner =>
            'SYS', replace => TRUE);
 
  Recommendation (estimated benefit: 99.72%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285397, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 99.68%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 6.95%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
-------------------------------------------------------------------------------
ERRORS SECTION
-------------------------------------------------------------------------------
- 当前操作因超时而中断。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 1781447092
 
--------------------------------------------------------------------------------
| Id  | Operation                       | Name               | Rows  | Bytes |Te
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                |                    |    13M|   862M|
|   1 |  SORT ORDER BY                  |                    |    13M|   862M|
|*  2 |   HASH JOIN                     |                    |    13M|   862M|
|*  3 |    TABLE ACCESS STORAGE FULL    | PIVINVRCPDOCHEADER |   195K|  3060K|
|*  4 |    HASH JOIN RIGHT ANTI         |                    |   228K|    10M|
|*  5 |     INDEX STORAGE FAST FULL SCAN| PURDOCHISTORY_U    |    11M|   280M|
|*  6 |     TABLE ACCESS STORAGE FULL   | PIVINCOMINVDOCITEM |    22M|   522M|
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("A"."DOCNO"="B"."DOCNO" AND "A"."FISCALYEAR"="B"."FISCALYEAR")
   3 - storage("A"."INVOICEDOCSTATUS"='A5')
       filter("A"."INVOICEDOCSTATUS"='A5')
   4 - access("B"."DOCNO"="C"."DOCNO" AND "B"."DOCLINENO"="C"."DOCLINENO" AND
              "B"."FISCALYEAR"="C"."FISCALYEAR")
   5 - storage("C"."TRANSATIONTYPE"='2' OR "C"."TRANSATIONTYPE"='3')
       filter("C"."TRANSATIONTYPE"='2' OR "C"."TRANSATIONTYPE"='3')
   6 - storage("B"."PURDOCNO" IS NOT NULL)
       filter("B"."PURDOCNO" IS NOT NULL)
 
2- Using SQL Profile
--------------------
Plan hash value: 2168866576
 
--------------------------------------------------------------------------------
| Id  | Operation                      | Name               | Rows  | Bytes |Tem
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT               |                    |  2139K|   132M|
|   1 |  SORT ORDER BY                 |                    |  2139K|   132M|
|*  2 |   HASH JOIN RIGHT ANTI         |                    |  2139K|   132M|
|*  3 |    INDEX STORAGE FAST FULL SCAN| PURDOCHISTORY_U    |    11M|   280M|
|*  4 |    HASH JOIN                   |                    |    13M|   530M|  5
|*  5 |     TABLE ACCESS STORAGE FULL  | PIVINVRCPDOCHEADER |   195K|  3060K|
|*  6 |     TABLE ACCESS STORAGE FULL  | PIVINCOMINVDOCITEM |    22M|   522M|
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("B"."DOCNO"="C"."DOCNO" AND "B"."DOCLINENO"="C"."DOCLINENO" AND
              "B"."FISCALYEAR"="C"."FISCALYEAR")
   3 - storage("C"."TRANSATIONTYPE"='2' OR "C"."TRANSATIONTYPE"='3')
       filter("C"."TRANSATIONTYPE"='2' OR "C"."TRANSATIONTYPE"='3')
   4 - access("A"."DOCNO"="B"."DOCNO" AND "A"."FISCALYEAR"="B"."FISCALYEAR")
   5 - storage("A"."INVOICEDOCSTATUS"='A5')
       filter("A"."INVOICEDOCSTATUS"='A5')
   6 - storage("B"."PURDOCNO" IS NOT NULL)
       filter("B"."PURDOCNO" IS NOT NULL)
 
3- Using Parallel Execution
---------------------------
Plan hash value: 3779033651
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name               | Rows  | By
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                    |  2139K|
|   1 |  PX COORDINATOR                        |                    |       |
|   2 |   PX SEND QC (ORDER)                   | :TQ10005           |  2139K|
|   3 |    SORT ORDER BY                       |                    |  2139K|
|   4 |     PX RECEIVE                         |                    |  2139K|
|   5 |      PX SEND RANGE                     | :TQ10004           |  2139K|
|*  6 |       HASH JOIN RIGHT ANTI BUFFERED    |                    |  2139K|
|   7 |        PX RECEIVE                      |                    |    11M|
|   8 |         PX SEND HASH                   | :TQ10002           |    11M|
|   9 |          PX BLOCK ITERATOR             |                    |    11M|
|* 10 |           INDEX STORAGE FAST FULL SCAN | PURDOCHISTORY_U    |    11M|
|  11 |        PX RECEIVE                      |                    |    13M|
|  12 |         PX SEND HASH                   | :TQ10003           |    13M|
|* 13 |          HASH JOIN BUFFERED            |                    |    13M|
|  14 |           JOIN FILTER CREATE           | :BF0000            |   195K|  3
|  15 |            PX RECEIVE                  |                    |   195K|  3
|  16 |             PX SEND HASH               | :TQ10000           |   195K|  3
|  17 |              PX BLOCK ITERATOR         |                    |   195K|  3
|* 18 |               TABLE ACCESS STORAGE FULL| PIVINVRCPDOCHEADER |   195K|  3
|  19 |           PX RECEIVE                   |                    |    22M|
|  20 |            PX SEND HASH                | :TQ10001           |    22M|
|  21 |             JOIN FILTER USE            | :BF0000            |    22M|
|  22 |              PX BLOCK ITERATOR         |                    |    22M|
|* 23 |               TABLE ACCESS STORAGE FULL| PIVINCOMINVDOCITEM |    22M|
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   6 - access("B"."DOCNO"="C"."DOCNO" AND "B"."DOCLINENO"="C"."DOCLINENO" AND "B
  10 - storage("C"."TRANSATIONTYPE"='2' OR "C"."TRANSATIONTYPE"='3')
       filter("C"."TRANSATIONTYPE"='2' OR "C"."TRANSATIONTYPE"='3')
  13 - access("A"."DOCNO"="B"."DOCNO" AND "A"."FISCALYEAR"="B"."FISCALYEAR")
  18 - storage("A"."INVOICEDOCSTATUS"='A5')
       filter("A"."INVOICEDOCSTATUS"='A5')
  23 - storage("B"."PURDOCNO" IS NOT NULL AND SYS_OP_BLOOM_FILTER(:BF0000,"B"."D
       filter("B"."PURDOCNO" IS NOT NULL AND SYS_OP_BLOOM_FILTER(:BF0000,"B"."DO
 
-------------------------------------------------------------------------------
Object ID  : 285325
Schema Name: JC800
SQL ID     : 7y5ggqh6j909w
SQL Text   : select   sum(xiaxian) xiaxian,sum(quexian)
             quexian,round(sum(quexian)/sum(xiaxian),2) dpu , sum(weizhitong)
             weizhitong,  round(1 - sum(weizhitong) /sum(xiaxian), 4) * 100
             as zhitonglv, sum(louyu) louyu, round(1 -
             sum(louyu)/sum(xiaxian), 4) * 100 as linyulv ,loc,carseriel,line
             from( select z.testdate,z.xiaxian,z.quexian,round(z.quexian /
             z.xiaxian,2) as dpu, z.weizhitong,round(1-z.weizhitong/z.xiaxian,
             4)*100 as zhitonglv, z.louyu,round(1-z.louyu/z.xiaxian,4)*100 as
             linyulv ,z.loc,z.carseriel,z.line from  (select
             a.testdate,a.xiaxian,b.quexian,decode(c.weizhitong,null,'0',c.wei
             zhitong) as weizhitong,decode(d.louyushu,null,'0',d.louyushu) as
             louyu,a.loc,a.carseriel,a.line  from(select
             a.loc,a.carseriel,a.line,a.workdate as testdate, count(*)
             xiaxian   from  (SELECT qccc.plant PLANT, qccc.loc LOC, qccc.vin
             VIN, qccc.straight STRAIGHT, qccc.workorder WORKORDER,
             qccc.wrokteam WROKTEAM, a22.mindate MINDATE, ttttt.cartype
             BULMOD, TO_CHAR(a22.mindate - CASE WHEN TO_CHAR (a22.mindate,
             'hh24mi') < '0750' THEN 1 ELSE 0 END, 'yyyy-mm-dd' ) AS
             workdate, a22.cartype carseriel, qccc.line FROM qmcheckcard qccc
             LEFT JOIN (SELECT   MIN (t222.inputdate) AS mindate, t222.vin,
             t222.cartype FROM qmcheckcarddefect t222 where
             nvl(conInvFlag,'N')!='Y' and  cardTypes ='Z' GROUP BY t222.vin,
             t222.cartype) a22 ON a22.vin = qccc.vin LEFT JOIN (SELECT
             t222.cartype, t222.fathermateseqno FROM qmmesppinfo t222) ttttt
             ON ttttt.fathermateseqno = qccc.vin )  a  where  a.plant='001'
             and a.loc='P1'  and a.workdate >='2017-02-15' and a.workdate
             <='2017-02-15' and a.loc ='P1' and 'conInvFlag'='conInvFlag'
             group by a.workdate ,a.loc,a.carseriel,a.line order by
             a.workdate,a.loc,a.carseriel,a.line)a  left join (select
             a.workdate as testdate, count(*) as quexian ,a.loc,t.carType AS
             carType,t.line from qmcheckcarddefect t inner join  (SELECT
             qccc.plant PLANT, qccc.loc LOC, qccc.vin VIN, qccc.straight
             STRAIGHT, qccc.workorder WORKORDER, qccc.wrokteam WROKTEAM,
             a22.mindate MINDATE, ttttt.cartype BULMOD, TO_CHAR(a22.mindate -
             CASE WHEN TO_CHAR (a22.mindate, 'hh24mi') < '0750' THEN 1 ELSE 0
             END, 'yyyy-mm-dd' ) AS workdate, a22.cartype carseriel,
             qccc.line FROM qmcheckcard qccc LEFT JOIN (SELECT   MIN
             (t222.inputdate) AS mindate, t222.vin, t222.cartype FROM
             qmcheckcarddefect t222 where nvl(conInvFlag,'N')!='Y' and
             cardTypes ='Z' GROUP BY t222.vin, t222.cartype) a22 ON a22.vin =
             qccc.vin LEFT JOIN (SELECT t222.cartype, t222.fathermateseqno
             FROM qmmesppinfo t222) ttttt ON ttttt.fathermateseqno = qccc.vin
             )  a on  a.plant='001'  and a.loc='P1'  and t.vin = a.vin and
             nvl(t.carType,' ')=nvl(a.carseriel,' ') and nvl(t.line,'
             ')=nvl(a.line,' ') AND t.defectdesa IS not NULL  and a.workdate
             >='2017-02-15' and a.workdate <='2017-02-15' and a.loc ='P1' and
             'conInvFlag'='conInvFlag'  group by
             a.workdate,a.loc,t.carType,t.line  order by
             a.workdate,a.loc,t.carType,t.line) b on a.testdate = b.testdate
             and nvl(a.loc,' ')=nvl(b.loc,' ') and nvl(a.carseriel,'
             ')=nvl(b.carType,' ') and nvl(a.line,' ')=nvl(b.line,' ')  left
             join ( select a.workdate testdate,a.loc,a.carseriel,a.line,count(
             *) weizhitong from  (SELECT qccc.plant PLANT, qccc.loc LOC,
             qccc.vin VIN, qccc.straight STRAIGHT, qccc.workorder WORKORDER,
             qccc.wrokteam WROKTEAM, a22.mindate MINDATE, ttttt.cartype
             BULMOD, TO_CHAR(a22.mindate - CASE WHEN TO_CHAR (a22.mindate,
             'hh24mi') < '0750' THEN 1 ELSE 0 END, 'yyyy-mm-dd' ) AS
             workdate, a22.cartype carseriel, qccc.line FROM qmcheckcard qccc
             LEFT JOIN (SELECT   MIN (t222.inputdate) AS mindate, t222.vin,
             t222.cartype FROM qmcheckcarddefect t222 where
             nvl(conInvFlag,'N')!='Y' and  cardTypes ='Z' GROUP BY t222.vin,
             t222.cartype) a22 ON a22.vin = qccc.vin LEFT JOIN (SELECT
             t222.cartype, t222.fathermateseqno FROM qmmesppinfo t222) ttttt
             ON ttttt.fathermateseqno = qccc.vin )  a  where  a.plant='001'
             and a.loc='P1'  and a.straight='1' and a.workdate >='2017-02-15'
             and a.workdate <='2017-02-15' and a.loc ='P1' and
             'conInvFlag'='conInvFlag'  group by
             a.workdate,a.loc,a.carseriel,a.line  order by
             a.workdate,a.loc,a.carseriel,a.line) c on a.testdate =
             c.testdate and nvl(a.loc,' ')=nvl(c.loc,' ') and
             nvl(a.carseriel,' ')=nvl(c.carseriel,' ') and nvl(a.line,'
             ')=nvl(c.line,' ')  left join (  select a.workdate
             testdate,a.loc,a.carseriel,a.line,  count(distinct t.vin) as
             louyushu  from qmcheckcarddefect t  inner join  (SELECT
             qccc.plant PLANT, qccc.loc LOC, qccc.vin VIN, qccc.straight
             STRAIGHT, qccc.workorder WORKORDER, qccc.wrokteam WROKTEAM,
             a22.mindate MINDATE, ttttt.cartype BULMOD, TO_CHAR(a22.mindate -
             CASE WHEN TO_CHAR (a22.mindate, 'hh24mi') < '0750' THEN 1 ELSE 0
             END, 'yyyy-mm-dd' ) AS workdate, a22.cartype carseriel,
             qccc.line FROM qmcheckcard qccc LEFT JOIN (SELECT   MIN
             (t222.inputdate) AS mindate, t222.vin, t222.cartype FROM
             qmcheckcarddefect t222 where nvl(conInvFlag,'N')!='Y' and
             cardTypes ='Z' GROUP BY t222.vin, t222.cartype) a22 ON a22.vin =
             qccc.vin LEFT JOIN (SELECT t222.cartype, t222.fathermateseqno
             FROM qmmesppinfo t222) ttttt ON ttttt.fathermateseqno = qccc.vin
             )  a on  a.plant='001'  and a.loc='P1'  and t.vin = a.vin  where
             t.defectdes = '漏雨' and a.workdate >='2017-02-15' and a.workdate
             <='2017-02-15' and a.loc ='P1' and 'conInvFlag'='conInvFlag'
             group by a.workdate,a.loc,a.carseriel,a.line   order by
             a.workdate,a.loc,a.carseriel,a.line) d on a.testdate =
             d.testdate and nvl(a.loc,' ')=nvl(d.loc,' ') and
             nvl(a.carseriel,' ')=nvl(d.carseriel,' ') and nvl(a.line,'
             ')=nvl(d.line,' ') ) z order by testdate,z.loc,z.carseriel,z.line
              )  group by loc,carseriel,line
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划。
 
  Recommendation (estimated benefit: 99.7%)
  -----------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285325, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使原始计划上的响应时间缩短 99.71%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗 (预计为
  15.94%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Alternative Plan Finding
---------------------------
  通过搜索系统的实时和历史性能数据找到了此语句的某些替代执行计划。
 
  The following table lists these plans ranked by their average elapsed time.
  See section "ALTERNATIVE PLANS SECTION" for detailed information on each
  plan.
 
  id plan hash  last seen            elapsed (s)  origin          note
  -- ---------- -------------------- ------------ --------------- --------------
   1 2000621611  2017-02-15/16:00:24        6.274 AWR             original plan
   2 2787380416  2017-02-15/14:21:05        7.429 Cursor Cache
 
  Information
  -----------
  - 根据每次执行的用时, 原始计划可能具有最佳性能。但是, 如果您知道某个替代计划优于原始计划, 可以为该替代计划创建 SQL 计划基线。这将指示
    Oracle 优化程序在将来优先于任何其他选择来选取它。
    execute dbms_sqltune.create_sql_plan_baseline(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285325, owner_name =>
            'SYS', plan_hash_value => xxxxxxxx);
 
-------------------------------------------------------------------------------
ADDITIONAL INFORMATION SECTION
-------------------------------------------------------------------------------
- 优化程序不能合并位于执行计划的行 ID 37 处的视图。. 仅当外部联接右侧的视图包含带单个 "WHERE" 子句的单个表时才能合并。.
- 优化程序不能合并位于执行计划的行 ID 27 处的视图。. 仅当外部联接右侧的视图包含带单个 "WHERE" 子句的单个表时才能合并。.
- 优化程序不能合并位于执行计划的行 ID 15 处的视图。. 仅当外部联接右侧的视图包含带单个 "WHERE" 子句的单个表时才能合并。.
- 优化程序不能合并位于执行计划的行 ID 5 处的视图。. 仅当外部联接右侧的视图包含带单个 "WHERE" 子句的单个表时才能合并。.
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original
-----------
Plan hash value: 2000621611
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name              | Rows  | Byte
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                   |    23 |  499
|   1 |  HASH GROUP BY                        |                   |    23 |  499
|*  2 |   HASH JOIN OUTER                     |                   |    23 |  499
|*  3 |    HASH JOIN OUTER                    |                   |    23 |  356
|*  4 |     HASH JOIN OUTER                   |                   |    23 |  213
|   5 |      VIEW                             |                   |    23 |   71
|   6 |       HASH GROUP BY                   |                   |    23 |  213
|*  7 |        FILTER                         |                   |       |
|*  8 |         HASH JOIN RIGHT OUTER         |                   |   550K|    4
|   9 |          VIEW                         |                   |   546K|    1
|  10 |           HASH GROUP BY               |                   |   546K|    1
|* 11 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
|* 12 |          HASH JOIN OUTER              |                   |   534K|    3
|* 13 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARD       |   529K|    1
|  14 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  15 |      VIEW                             |                   |    23 |  142
|  16 |       HASH GROUP BY                   |                   |    23 |  358
|* 17 |        HASH JOIN OUTER                |                   | 57155 |  870
|* 18 |         HASH JOIN                     |                   | 56711 |  692
|* 19 |          FILTER                       |                   |       |
|* 20 |           HASH JOIN OUTER             |                   |   546K|    4
|* 21 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  22 |            VIEW                       |                   |   546K|    2
|  23 |             HASH GROUP BY             |                   |   546K|    1
|* 24 |              TABLE ACCESS STORAGE FULL| QMCHECKCARDDEFECT |   546K|    1
|* 25 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARDDEFECT |  2414K|    9
|  26 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
|  27 |     VIEW                              |                   |    23 |  142
|  28 |      HASH GROUP BY                    |                   |    23 |  220
|* 29 |       FILTER                          |                   |       |
|* 30 |        HASH JOIN OUTER                |                   |   131K|    1
|* 31 |         HASH JOIN OUTER               |                   |   114K|  706
|* 32 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARD       |   114K|  356
|  33 |          INDEX STORAGE FAST FULL SCAN | QMMESPPINFO_01    |  1552K|    4
|  34 |         VIEW                          |                   |   546K|    1
|  35 |          HASH GROUP BY                |                   |   546K|    1
|* 36 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARDDEFECT |   546K|    1
|  37 |    VIEW                               |                   |    23 |  142
|  38 |     HASH GROUP BY                     |                   |    23 |  103
|  39 |      VIEW                             | VM_NWVW_1         | 21881 |   96
|  40 |       HASH GROUP BY                   |                   | 21881 |  256
|* 41 |        FILTER                         |                   |       |
|* 42 |         HASH JOIN OUTER               |                   | 21881 |  256
|* 43 |          HASH JOIN OUTER              |                   | 19141 |  162
|* 44 |           HASH JOIN                   |                   | 18993 |  103
|* 45 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT | 18994 |   50
|* 46 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  47 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  48 |          VIEW                         |                   |   546K|    1
|  49 |           HASH GROUP BY               |                   |   546K|    1
|* 50 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access(NVL("A"."LINE",' ')=NVL("D"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("D"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("D"."LOC
              "A"."TESTDATE"="D"."TESTDATE"(+))
   3 - access(NVL("A"."LINE",' ')=NVL("C"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("C"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("C"."LOC
              "A"."TESTDATE"="C"."TESTDATE"(+))
   4 - access(NVL("A"."LINE",' ')=NVL("B"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("B"."CARTYPE"(+),' ') AND NVL("A"."LOC",' ')=NVL("B"."LOC"(
              "A"."TESTDATE"="B"."TESTDATE"(+))
   7 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
   8 - access("A22"."VIN"(+)="QCCC"."VIN")
  11 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  12 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  13 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  17 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  18 - access("T"."VIN"="QCCC"."VIN" AND NVL("T"."CARTYPE",' ')=NVL("A22"."CARTY
              NVL("T"."LINE",' ')=NVL("QCCC"."LINE",' '))
  19 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  20 - access("A22"."VIN"(+)="QCCC"."VIN")
  21 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  24 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  25 - storage("T"."DEFECTDESA" IS NOT NULL)
       filter("T"."DEFECTDESA" IS NOT NULL)
  29 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  30 - access("A22"."VIN"(+)="QCCC"."VIN")
  31 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  32 - storage("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='0
       filter("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='00
  36 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  41 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  42 - access("A22"."VIN"(+)="QCCC"."VIN")
  43 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  44 - access("T"."VIN"="QCCC"."VIN")
  45 - storage("T"."DEFECTDES"='漏雨')
       filter("T"."DEFECTDES"='漏雨')
  46 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  50 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 
2- Using Parallel Execution
---------------------------
Plan hash value: 4191165024
 
--------------------------------------------------------------------------------
| Id  | Operation                                                 | Name
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                                          |
|   1 |  PX COORDINATOR                                           |
|   2 |   PX SEND QC (RANDOM)                                     | :TQ10034
|   3 |    HASH GROUP BY                                          |
|   4 |     PX RECEIVE                                            |
|   5 |      PX SEND HASH                                         | :TQ10033
|   6 |       HASH GROUP BY                                       |
|*  7 |        HASH JOIN OUTER                                    |
|*  8 |         HASH JOIN OUTER                                   |
|*  9 |          HASH JOIN OUTER                                  |
|  10 |           PX RECEIVE                                      |
|  11 |            PX SEND HASH                                   | :TQ10029
|  12 |             VIEW                                          |
|  13 |              HASH GROUP BY                                |
|  14 |               PX RECEIVE                                  |
|  15 |                PX SEND HASH                               | :TQ10025
|  16 |                 HASH GROUP BY                             |
|* 17 |                  FILTER                                   |
|* 18 |                   HASH JOIN OUTER                         |
|  19 |                    PX RECEIVE                             |
|  20 |                     PX SEND HASH                          | :TQ10018
|* 21 |                      HASH JOIN OUTER BUFFERED             |
|  22 |                       PX RECEIVE                          |
|  23 |                        PX SEND HASH                       | :TQ10008
|  24 |                         PX BLOCK ITERATOR                 |
|* 25 |                          TABLE ACCESS STORAGE FULL        | QMCHECKCARD
|  26 |                       PX RECEIVE                          |
|  27 |                        PX SEND HASH                       | :TQ10009
|  28 |                         PX BLOCK ITERATOR                 |
|  29 |                          INDEX STORAGE FAST FULL SCAN     | QMMESPPINFO_
|  30 |                    PX RECEIVE                             |
|  31 |                     PX SEND HASH                          | :TQ10019
|  32 |                      VIEW                                 |
|  33 |                       HASH GROUP BY                       |
|  34 |                        PX RECEIVE                         |
|  35 |                         PX SEND HASH                      | :TQ10010
|  36 |                          PX BLOCK ITERATOR                |
|* 37 |                           TABLE ACCESS STORAGE FULL       | QMCHECKCARDD
|  38 |           PX RECEIVE                                      |
|  39 |            PX SEND HASH                                   | :TQ10030
|  40 |             VIEW                                          |
|  41 |              HASH GROUP BY                                |
|  42 |               PX RECEIVE                                  |
|  43 |                PX SEND HASH                               | :TQ10026
|  44 |                 HASH GROUP BY                             |
|* 45 |                  HASH JOIN OUTER                          |
|  46 |                   PX RECEIVE                              |
|  47 |                    PX SEND HASH                           | :TQ10020
|* 48 |                     HASH JOIN BUFFERED                    |
|  49 |                      JOIN FILTER CREATE                   | :BF0000
|  50 |                       PX RECEIVE                          |
|  51 |                        PX SEND HASH                       | :TQ10011
|* 52 |                         FILTER                            |
|* 53 |                          HASH JOIN OUTER BUFFERED         |
|  54 |                           PX RECEIVE                      |
|  55 |                            PX SEND HASH                   | :TQ10003
|  56 |                             PX BLOCK ITERATOR             |
|* 57 |                              TABLE ACCESS STORAGE FULL    | QMCHECKCARD
|  58 |                           PX RECEIVE                      |
|  59 |                            PX SEND HASH                   | :TQ10004
|  60 |                             VIEW                          |
|  61 |                              HASH GROUP BY                |
|  62 |                               PX RECEIVE                  |
|  63 |                                PX SEND HASH               | :TQ10000
|  64 |                                 PX BLOCK ITERATOR         |
|* 65 |                                  TABLE ACCESS STORAGE FULL| QMCHECKCARDD
|  66 |                      PX RECEIVE                           |
|  67 |                       PX SEND HASH                        | :TQ10012
|  68 |                        JOIN FILTER USE                    | :BF0000
|  69 |                         PX BLOCK ITERATOR                 |
|* 70 |                          TABLE ACCESS STORAGE FULL        | QMCHECKCARDD
|  71 |                   PX RECEIVE                              |
|  72 |                    PX SEND HASH                           | :TQ10021
|  73 |                     PX BLOCK ITERATOR                     |
|  74 |                      INDEX STORAGE FAST FULL SCAN         | QMMESPPINFO_
|  75 |          PX RECEIVE                                       |
|  76 |           PX SEND HASH                                    | :TQ10031
|  77 |            VIEW                                           |
|  78 |             HASH GROUP BY                                 |
|  79 |              PX RECEIVE                                   |
|  80 |               PX SEND HASH                                | :TQ10027
|  81 |                HASH GROUP BY                              |
|* 82 |                 FILTER                                    |
|* 83 |                  HASH JOIN OUTER                          |
|  84 |                   PX RECEIVE                              |
|  85 |                    PX SEND HASH                           | :TQ10022
|* 86 |                     HASH JOIN OUTER BUFFERED              |
|  87 |                      PX RECEIVE                           |
|  88 |                       PX SEND HASH                        | :TQ10013
|  89 |                        PX BLOCK ITERATOR                  |
|* 90 |                         TABLE ACCESS STORAGE FULL         | QMCHECKCARD
|  91 |                      PX RECEIVE                           |
|  92 |                       PX SEND HASH                        | :TQ10014
|  93 |                        PX BLOCK ITERATOR                  |
|  94 |                         INDEX STORAGE FAST FULL SCAN      | QMMESPPINFO_
|  95 |                   PX RECEIVE                              |
|  96 |                    PX SEND HASH                           | :TQ10023
|  97 |                     VIEW                                  |
|  98 |                      HASH GROUP BY                        |
|  99 |                       PX RECEIVE                          |
| 100 |                        PX SEND HASH                       | :TQ10015
| 101 |                         PX BLOCK ITERATOR                 |
|*102 |                          TABLE ACCESS STORAGE FULL        | QMCHECKCARDD
| 103 |         PX RECEIVE                                        |
| 104 |          PX SEND HASH                                     | :TQ10032
| 105 |           VIEW                                            |
| 106 |            HASH GROUP BY                                  |
| 107 |             PX RECEIVE                                    |
| 108 |              PX SEND HASH                                 | :TQ10028
| 109 |               HASH GROUP BY                               |
| 110 |                VIEW                                       | VM_NWVW_1
| 111 |                 HASH GROUP BY                             |
| 112 |                  PX RECEIVE                               |
| 113 |                   PX SEND HASH                            | :TQ10024
| 114 |                    HASH GROUP BY                          |
|*115 |                     FILTER                                |
|*116 |                      HASH JOIN OUTER                      |
| 117 |                       PX RECEIVE                          |
| 118 |                        PX SEND HASH                       | :TQ10016
|*119 |                         HASH JOIN OUTER BUFFERED          |
| 120 |                          PX RECEIVE                       |
| 121 |                           PX SEND HASH                    | :TQ10005
|*122 |                            HASH JOIN BUFFERED             |
| 123 |                             JOIN FILTER CREATE            | :BF0001
| 124 |                              PX RECEIVE                   |
| 125 |                               PX SEND HASH                | :TQ10001
| 126 |                                PX BLOCK ITERATOR          |
|*127 |                                 TABLE ACCESS STORAGE FULL | QMCHECKCARDD
| 128 |                             PX RECEIVE                    |
| 129 |                              PX SEND HASH                 | :TQ10002
| 130 |                               JOIN FILTER USE             | :BF0001
| 131 |                                PX BLOCK ITERATOR          |
|*132 |                                 TABLE ACCESS STORAGE FULL | QMCHECKCARD
| 133 |                          PX RECEIVE                       |
| 134 |                           PX SEND HASH                    | :TQ10006
| 135 |                            PX BLOCK ITERATOR              |
| 136 |                             INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_
| 137 |                       PX RECEIVE                          |
| 138 |                        PX SEND HASH                       | :TQ10017
| 139 |                         VIEW                              |
| 140 |                          HASH GROUP BY                    |
| 141 |                           PX RECEIVE                      |
| 142 |                            PX SEND HASH                   | :TQ10007
| 143 |                             PX BLOCK ITERATOR             |
|*144 |                              TABLE ACCESS STORAGE FULL    | QMCHECKCARDD
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   7 - access(NVL("A"."LINE",' ')=NVL("D"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ') AND "A"."TESTDATE"="D"."TESTDATE"(+))
   8 - access(NVL("A"."LINE",' ')=NVL("C"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ') AND "A"."TESTDATE"="C"."TESTDATE"(+))
   9 - access(NVL("A"."LINE",' ')=NVL("B"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ') AND "A"."TESTDATE"="B"."TESTDATE"(+))
  17 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN (TO_CHAR(INT
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              ELSE 0 END ,'yyyy-mm-dd')<='2017-02-15')
  18 - access("A22"."VIN"(+)="QCCC"."VIN")
  21 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  25 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  37 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  45 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  48 - access("T"."VIN"="QCCC"."VIN" AND NVL("T"."CARTYPE",' ')=NVL("A22"."CARTY
  52 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN (TO_CHAR(INT
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              ELSE 0 END ,'yyyy-mm-dd')<='2017-02-15')
  53 - access("A22"."VIN"(+)="QCCC"."VIN")
  57 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  65 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  70 - storage("T"."DEFECTDESA" IS NOT NULL)
       filter("T"."DEFECTDESA" IS NOT NULL)
  82 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN (TO_CHAR(INT
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              ELSE 0 END ,'yyyy-mm-dd')<='2017-02-15')
  83 - access("A22"."VIN"(+)="QCCC"."VIN")
  86 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  90 - storage("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='0
       filter("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='00
 102 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 115 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN (TO_CHAR(INT
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              ELSE 0 END ,'yyyy-mm-dd')<='2017-02-15')
 116 - access("A22"."VIN"(+)="QCCC"."VIN")
 119 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
 122 - access("T"."VIN"="QCCC"."VIN")
 127 - storage("T"."DEFECTDES"='漏雨')
       filter("T"."DEFECTDES"='漏雨')
 132 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001' AND SYS_OP_BLOOM_FILTE
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001' AND SYS_OP_BLOOM_FILTER
 144 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 
-------------------------------------------------------------------------------
ALTERNATIVE PLANS SECTION
-------------------------------------------------------------------------------
 
Plan 2
------
 
  Plan Origin                 :Cursor Cache
  Plan Hash Value             :2787380416
  Executions                  :25
  Elapsed Time                :7.429 sec
  CPU Time                    :7.359 sec
  Buffer Gets                 :492612
  Disk Reads                  :25
  Disk Writes                 :0
 
Notes:
  1. Statistics shown are averaged over multiple executions.
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name              | Rows  | Byte
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                   |    23 |  499
|   1 |  HASH GROUP BY                        |                   |    23 |  499
|*  2 |   HASH JOIN OUTER                     |                   |    23 |  499
|*  3 |    HASH JOIN OUTER                    |                   |    23 |  356
|*  4 |     HASH JOIN OUTER                   |                   |    23 |  213
|   5 |      VIEW                             |                   |    23 |   71
|   6 |       HASH GROUP BY                   |                   |    23 |  213
|*  7 |        FILTER                         |                   |       |
|*  8 |         HASH JOIN RIGHT OUTER         |                   |   550K|    4
|   9 |          VIEW                         |                   |   546K|    1
|  10 |           HASH GROUP BY               |                   |   546K|    1
|* 11 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
|* 12 |          HASH JOIN OUTER              |                   |   534K|    3
|* 13 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARD       |   529K|    1
|  14 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  15 |      VIEW                             |                   |    23 |  142
|  16 |       HASH GROUP BY                   |                   |    23 |  358
|* 17 |        HASH JOIN OUTER                |                   | 57155 |  870
|* 18 |         HASH JOIN                     |                   | 56711 |  692
|* 19 |          FILTER                       |                   |       |
|* 20 |           HASH JOIN RIGHT OUTER       |                   |   546K|    4
|  21 |            VIEW                       |                   |   546K|    2
|  22 |             HASH GROUP BY             |                   |   546K|    1
|* 23 |              TABLE ACCESS STORAGE FULL| QMCHECKCARDDEFECT |   546K|    1
|* 24 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|* 25 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARDDEFECT |  2414K|    9
|  26 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
|  27 |     VIEW                              |                   |    23 |  142
|  28 |      HASH GROUP BY                    |                   |    23 |  220
|* 29 |       FILTER                          |                   |       |
|* 30 |        HASH JOIN OUTER                |                   |   131K|    1
|* 31 |         HASH JOIN OUTER               |                   |   114K|  706
|* 32 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARD       |   114K|  356
|  33 |          INDEX STORAGE FAST FULL SCAN | QMMESPPINFO_01    |  1552K|    4
|  34 |         VIEW                          |                   |   546K|    1
|  35 |          HASH GROUP BY                |                   |   546K|    1
|* 36 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARDDEFECT |   546K|    1
|  37 |    VIEW                               |                   |    23 |  142
|  38 |     HASH GROUP BY                     |                   |    23 |  103
|  39 |      VIEW                             | VM_NWVW_1         | 21881 |   96
|  40 |       HASH GROUP BY                   |                   | 21881 |  256
|* 41 |        HASH JOIN OUTER                |                   | 21881 |  256
|* 42 |         FILTER                        |                   |       |
|* 43 |          HASH JOIN OUTER              |                   | 21711 |  188
|* 44 |           HASH JOIN                   |                   | 18993 |  103
|* 45 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT | 18994 |   50
|* 46 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  47 |           VIEW                        |                   |   546K|    1
|  48 |            HASH GROUP BY              |                   |   546K|    1
|* 49 |             TABLE ACCESS STORAGE FULL | QMCHECKCARDDEFECT |   546K|    1
|  50 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access(NVL("A"."LINE",' ')=NVL("D"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("D"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("D"."LOC
              "A"."TESTDATE"="D"."TESTDATE"(+))
   3 - access(NVL("A"."LINE",' ')=NVL("C"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("C"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("C"."LOC
              "A"."TESTDATE"="C"."TESTDATE"(+))
   4 - access(NVL("A"."LINE",' ')=NVL("B"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("B"."CARTYPE"(+),' ') AND NVL("A"."LOC",' ')=NVL("B"."LOC"(
              "A"."TESTDATE"="B"."TESTDATE"(+))
   7 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
   8 - access("A22"."VIN"(+)="QCCC"."VIN")
  11 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  12 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  13 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  17 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  18 - access("T"."VIN"="QCCC"."VIN" AND NVL("T"."CARTYPE",' ')=NVL("A22"."CARTY
              NVL("T"."LINE",' ')=NVL("QCCC"."LINE",' '))
  19 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  20 - access("A22"."VIN"(+)="QCCC"."VIN")
  23 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  24 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  25 - storage("T"."DEFECTDESA" IS NOT NULL)
       filter("T"."DEFECTDESA" IS NOT NULL)
  29 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  30 - access("A22"."VIN"(+)="QCCC"."VIN")
  31 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  32 - storage("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='0
       filter("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='00
  36 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  41 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  42 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  43 - access("A22"."VIN"(+)="QCCC"."VIN")
  44 - access("T"."VIN"="QCCC"."VIN")
  45 - storage("T"."DEFECTDES"='漏雨')
       filter("T"."DEFECTDES"='漏雨')
  46 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  49 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 
Plan 1
------
 
  Plan Origin                 :AWR
  Plan Hash Value             :2000621611
  Executions                  :6
  Elapsed Time                :6.274 sec
  CPU Time                    :6.008 sec
  Buffer Gets                 :493398
  Disk Reads                  :211119
  Disk Writes                 :0
 
Notes:
  1. Statistics shown are averaged over multiple executions.
  2. The plan matches the original plan.
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name              | Rows  | Byte
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                   |    23 |  499
|   1 |  HASH GROUP BY                        |                   |    23 |  499
|*  2 |   HASH JOIN OUTER                     |                   |    23 |  499
|*  3 |    HASH JOIN OUTER                    |                   |    23 |  356
|*  4 |     HASH JOIN OUTER                   |                   |    23 |  213
|   5 |      VIEW                             |                   |    23 |   71
|   6 |       HASH GROUP BY                   |                   |    23 |  213
|*  7 |        FILTER                         |                   |       |
|*  8 |         HASH JOIN RIGHT OUTER         |                   |   550K|    4
|   9 |          VIEW                         |                   |   546K|    1
|  10 |           HASH GROUP BY               |                   |   546K|    1
|* 11 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
|* 12 |          HASH JOIN OUTER              |                   |   534K|    3
|* 13 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARD       |   529K|    1
|  14 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  15 |      VIEW                             |                   |    23 |  142
|  16 |       HASH GROUP BY                   |                   |    23 |  358
|* 17 |        HASH JOIN OUTER                |                   | 57155 |  870
|* 18 |         HASH JOIN                     |                   | 56711 |  692
|* 19 |          FILTER                       |                   |       |
|* 20 |           HASH JOIN OUTER             |                   |   546K|    4
|* 21 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  22 |            VIEW                       |                   |   546K|    2
|  23 |             HASH GROUP BY             |                   |   546K|    1
|* 24 |              TABLE ACCESS STORAGE FULL| QMCHECKCARDDEFECT |   546K|    1
|* 25 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARDDEFECT |  2414K|    9
|  26 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
|  27 |     VIEW                              |                   |    23 |  142
|  28 |      HASH GROUP BY                    |                   |    23 |  220
|* 29 |       FILTER                          |                   |       |
|* 30 |        HASH JOIN OUTER                |                   |   131K|    1
|* 31 |         HASH JOIN OUTER               |                   |   114K|  706
|* 32 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARD       |   114K|  356
|  33 |          INDEX STORAGE FAST FULL SCAN | QMMESPPINFO_01    |  1552K|    4
|  34 |         VIEW                          |                   |   546K|    1
|  35 |          HASH GROUP BY                |                   |   546K|    1
|* 36 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARDDEFECT |   546K|    1
|  37 |    VIEW                               |                   |    23 |  142
|  38 |     HASH GROUP BY                     |                   |    23 |  103
|  39 |      VIEW                             | VM_NWVW_1         | 21881 |   96
|  40 |       HASH GROUP BY                   |                   | 21881 |  256
|* 41 |        FILTER                         |                   |       |
|* 42 |         HASH JOIN OUTER               |                   | 21881 |  256
|* 43 |          HASH JOIN OUTER              |                   | 19141 |  162
|* 44 |           HASH JOIN                   |                   | 18993 |  103
|* 45 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT | 18994 |   50
|* 46 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  47 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  48 |          VIEW                         |                   |   546K|    1
|  49 |           HASH GROUP BY               |                   |   546K|    1
|* 50 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access(NVL("A"."LINE",' ')=NVL("D"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("D"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("D"."LOC
              "A"."TESTDATE"="D"."TESTDATE"(+))
   3 - access(NVL("A"."LINE",' ')=NVL("C"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("C"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("C"."LOC
              "A"."TESTDATE"="C"."TESTDATE"(+))
   4 - access(NVL("A"."LINE",' ')=NVL("B"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("B"."CARTYPE"(+),' ') AND NVL("A"."LOC",' ')=NVL("B"."LOC"(
              "A"."TESTDATE"="B"."TESTDATE"(+))
   7 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
   8 - access("A22"."VIN"(+)="QCCC"."VIN")
  11 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  12 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  13 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  17 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  18 - access("T"."VIN"="QCCC"."VIN" AND NVL("T"."CARTYPE",' ')=NVL("A22"."CARTY
              NVL("T"."LINE",' ')=NVL("QCCC"."LINE",' '))
  19 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  20 - access("A22"."VIN"(+)="QCCC"."VIN")
  21 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  24 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  25 - storage("T"."DEFECTDESA" IS NOT NULL)
       filter("T"."DEFECTDESA" IS NOT NULL)
  29 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  30 - access("A22"."VIN"(+)="QCCC"."VIN")
  31 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  32 - storage("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='0
       filter("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='00
  36 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  41 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-15' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  42 - access("A22"."VIN"(+)="QCCC"."VIN")
  43 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  44 - access("T"."VIN"="QCCC"."VIN")
  45 - storage("T"."DEFECTDES"='漏雨')
       filter("T"."DEFECTDES"='漏雨')
  46 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  50 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 
-------------------------------------------------------------------------------
Object ID  : 285373
Schema Name: JC800
SQL ID     : 148tyj9bzxzgk
SQL Text   : select   sum(xiaxian) xiaxian,sum(quexian)
             quexian,round(sum(quexian)/sum(xiaxian),2) dpu , sum(weizhitong)
             weizhitong,  round(1 - sum(weizhitong) /sum(xiaxian), 4) * 100
             as zhitonglv, sum(louyu) louyu, round(1 -
             sum(louyu)/sum(xiaxian), 4) * 100 as linyulv ,loc,carseriel,line
             from( select z.testdate,z.xiaxian,z.quexian,round(z.quexian /
             z.xiaxian,2) as dpu, z.weizhitong,round(1-z.weizhitong/z.xiaxian,
             4)*100 as zhitonglv, z.louyu,round(1-z.louyu/z.xiaxian,4)*100 as
             linyulv ,z.loc,z.carseriel,z.line from  (select
             a.testdate,a.xiaxian,b.quexian,decode(c.weizhitong,null,'0',c.wei
             zhitong) as weizhitong,decode(d.louyushu,null,'0',d.louyushu) as
             louyu,a.loc,a.carseriel,a.line  from(select
             a.loc,a.carseriel,a.line,a.workdate as testdate, count(*)
             xiaxian   from  (SELECT qccc.plant PLANT, qccc.loc LOC, qccc.vin
             VIN, qccc.straight STRAIGHT, qccc.workorder WORKORDER,
             qccc.wrokteam WROKTEAM, a22.mindate MINDATE, ttttt.cartype
             BULMOD, TO_CHAR(a22.mindate - CASE WHEN TO_CHAR (a22.mindate,
             'hh24mi') < '0750' THEN 1 ELSE 0 END, 'yyyy-mm-dd' ) AS
             workdate, a22.cartype carseriel, qccc.line FROM qmcheckcard qccc
             LEFT JOIN (SELECT   MIN (t222.inputdate) AS mindate, t222.vin,
             t222.cartype FROM qmcheckcarddefect t222 where
             nvl(conInvFlag,'N')!='Y' and  cardTypes ='Z' GROUP BY t222.vin,
             t222.cartype) a22 ON a22.vin = qccc.vin LEFT JOIN (SELECT
             t222.cartype, t222.fathermateseqno FROM qmmesppinfo t222) ttttt
             ON ttttt.fathermateseqno = qccc.vin )  a  where  a.plant='001'
             and a.loc='P1'  and a.workdate >='2017-02-14' and a.workdate
             <='2017-02-15' and a.loc ='P1' and 'conInvFlag'='conInvFlag'
             group by a.workdate ,a.loc,a.carseriel,a.line order by
             a.workdate,a.loc,a.carseriel,a.line)a  left join (select
             a.workdate as testdate, count(*) as quexian ,a.loc,t.carType AS
             carType,t.line from qmcheckcarddefect t inner join  (SELECT
             qccc.plant PLANT, qccc.loc LOC, qccc.vin VIN, qccc.straight
             STRAIGHT, qccc.workorder WORKORDER, qccc.wrokteam WROKTEAM,
             a22.mindate MINDATE, ttttt.cartype BULMOD, TO_CHAR(a22.mindate -
             CASE WHEN TO_CHAR (a22.mindate, 'hh24mi') < '0750' THEN 1 ELSE 0
             END, 'yyyy-mm-dd' ) AS workdate, a22.cartype carseriel,
             qccc.line FROM qmcheckcard qccc LEFT JOIN (SELECT   MIN
             (t222.inputdate) AS mindate, t222.vin, t222.cartype FROM
             qmcheckcarddefect t222 where nvl(conInvFlag,'N')!='Y' and
             cardTypes ='Z' GROUP BY t222.vin, t222.cartype) a22 ON a22.vin =
             qccc.vin LEFT JOIN (SELECT t222.cartype, t222.fathermateseqno
             FROM qmmesppinfo t222) ttttt ON ttttt.fathermateseqno = qccc.vin
             )  a on  a.plant='001'  and a.loc='P1'  and t.vin = a.vin and
             nvl(t.carType,' ')=nvl(a.carseriel,' ') and nvl(t.line,'
             ')=nvl(a.line,' ') AND t.defectdesa IS not NULL  and a.workdate
             >='2017-02-14' and a.workdate <='2017-02-15' and a.loc ='P1' and
             'conInvFlag'='conInvFlag'  group by
             a.workdate,a.loc,t.carType,t.line  order by
             a.workdate,a.loc,t.carType,t.line) b on a.testdate = b.testdate
             and nvl(a.loc,' ')=nvl(b.loc,' ') and nvl(a.carseriel,'
             ')=nvl(b.carType,' ') and nvl(a.line,' ')=nvl(b.line,' ')  left
             join ( select a.workdate testdate,a.loc,a.carseriel,a.line,count(
             *) weizhitong from  (SELECT qccc.plant PLANT, qccc.loc LOC,
             qccc.vin VIN, qccc.straight STRAIGHT, qccc.workorder WORKORDER,
             qccc.wrokteam WROKTEAM, a22.mindate MINDATE, ttttt.cartype
             BULMOD, TO_CHAR(a22.mindate - CASE WHEN TO_CHAR (a22.mindate,
             'hh24mi') < '0750' THEN 1 ELSE 0 END, 'yyyy-mm-dd' ) AS
             workdate, a22.cartype carseriel, qccc.line FROM qmcheckcard qccc
             LEFT JOIN (SELECT   MIN (t222.inputdate) AS mindate, t222.vin,
             t222.cartype FROM qmcheckcarddefect t222 where
             nvl(conInvFlag,'N')!='Y' and  cardTypes ='Z' GROUP BY t222.vin,
             t222.cartype) a22 ON a22.vin = qccc.vin LEFT JOIN (SELECT
             t222.cartype, t222.fathermateseqno FROM qmmesppinfo t222) ttttt
             ON ttttt.fathermateseqno = qccc.vin )  a  where  a.plant='001'
             and a.loc='P1'  and a.straight='1' and a.workdate >='2017-02-14'
             and a.workdate <='2017-02-15' and a.loc ='P1' and
             'conInvFlag'='conInvFlag'  group by
             a.workdate,a.loc,a.carseriel,a.line  order by
             a.workdate,a.loc,a.carseriel,a.line) c on a.testdate =
             c.testdate and nvl(a.loc,' ')=nvl(c.loc,' ') and
             nvl(a.carseriel,' ')=nvl(c.carseriel,' ') and nvl(a.line,'
             ')=nvl(c.line,' ')  left join (  select a.workdate
             testdate,a.loc,a.carseriel,a.line,  count(distinct t.vin) as
             louyushu  from qmcheckcarddefect t  inner join  (SELECT
             qccc.plant PLANT, qccc.loc LOC, qccc.vin VIN, qccc.straight
             STRAIGHT, qccc.workorder WORKORDER, qccc.wrokteam WROKTEAM,
             a22.mindate MINDATE, ttttt.cartype BULMOD, TO_CHAR(a22.mindate -
             CASE WHEN TO_CHAR (a22.mindate, 'hh24mi') < '0750' THEN 1 ELSE 0
             END, 'yyyy-mm-dd' ) AS workdate, a22.cartype carseriel,
             qccc.line FROM qmcheckcard qccc LEFT JOIN (SELECT   MIN
             (t222.inputdate) AS mindate, t222.vin, t222.cartype FROM
             qmcheckcarddefect t222 where nvl(conInvFlag,'N')!='Y' and
             cardTypes ='Z' GROUP BY t222.vin, t222.cartype) a22 ON a22.vin =
             qccc.vin LEFT JOIN (SELECT t222.cartype, t222.fathermateseqno
             FROM qmmesppinfo t222) ttttt ON ttttt.fathermateseqno = qccc.vin
             )  a on  a.plant='001'  and a.loc='P1'  and t.vin = a.vin  where
             t.defectdes = '漏雨' and a.workdate >='2017-02-14' and a.workdate
             <='2017-02-15' and a.loc ='P1' and 'conInvFlag'='conInvFlag'
             group by a.workdate,a.loc,a.carseriel,a.line   order by
             a.workdate,a.loc,a.carseriel,a.line) d on a.testdate =
             d.testdate and nvl(a.loc,' ')=nvl(d.loc,' ') and
             nvl(a.carseriel,' ')=nvl(d.carseriel,' ') and nvl(a.line,'
             ')=nvl(d.line,' ') ) z order by testdate,z.loc,z.carseriel,z.line
              )  group by loc,carseriel,line
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划。
 
  Recommendation (estimated benefit: 99.7%)
  -----------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285373, task_owner =>
            'SYS', replace => TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);
 
  与 DOP 288 并行执行此查询会使原始计划上的响应时间缩短 99.71%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗 (预计为
  15.94%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。
 
  The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.
 
                                 Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0
  Percent of total activity                                              0
  Percent of samples with #Active Sessions > 2*CPU                       0
  Weekly DB time (in sec)                                                0
 
                              Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0
 
2- Alternative Plan Finding
---------------------------
  通过搜索系统的实时和历史性能数据找到了此语句的某些替代执行计划。
 
  The following table lists these plans ranked by their average elapsed time.
  See section "ALTERNATIVE PLANS SECTION" for detailed information on each
  plan.
 
  id plan hash  last seen            elapsed (s)  origin          note
  -- ---------- -------------------- ------------ --------------- --------------
   1 2556778791  2017-02-15/02:00:44        3.788 AWR
   2 2787380416  2017-02-15/02:00:44        3.792 AWR
   3 2000621611  2017-02-15/01:14:22        7.833 Cursor Cache    original plan
 
  Recommendation
  --------------
  - 请考虑使用最佳平均用时为计划创建 SQL 计划基线。
    execute dbms_sqltune.create_sql_plan_baseline(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285373, owner_name =>
            'SYS', plan_hash_value => 2556778791);
 
-------------------------------------------------------------------------------
ADDITIONAL INFORMATION SECTION
-------------------------------------------------------------------------------
- 优化程序不能合并位于执行计划的行 ID 37 处的视图。. 仅当外部联接右侧的视图包含带单个 "WHERE" 子句的单个表时才能合并。.
- 优化程序不能合并位于执行计划的行 ID 27 处的视图。. 仅当外部联接右侧的视图包含带单个 "WHERE" 子句的单个表时才能合并。.
- 优化程序不能合并位于执行计划的行 ID 15 处的视图。. 仅当外部联接右侧的视图包含带单个 "WHERE" 子句的单个表时才能合并。.
- 优化程序不能合并位于执行计划的行 ID 5 处的视图。. 仅当外部联接右侧的视图包含带单个 "WHERE" 子句的单个表时才能合并。.
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original
-----------
Plan hash value: 2000621611
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name              | Rows  | Byte
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                   |    23 |  499
|   1 |  HASH GROUP BY                        |                   |    23 |  499
|*  2 |   HASH JOIN OUTER                     |                   |    23 |  499
|*  3 |    HASH JOIN OUTER                    |                   |    23 |  356
|*  4 |     HASH JOIN OUTER                   |                   |    23 |  213
|   5 |      VIEW                             |                   |    23 |   71
|   6 |       HASH GROUP BY                   |                   |    23 |  213
|*  7 |        FILTER                         |                   |       |
|*  8 |         HASH JOIN RIGHT OUTER         |                   |   550K|    4
|   9 |          VIEW                         |                   |   546K|    1
|  10 |           HASH GROUP BY               |                   |   546K|    1
|* 11 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
|* 12 |          HASH JOIN OUTER              |                   |   534K|    3
|* 13 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARD       |   529K|    1
|  14 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  15 |      VIEW                             |                   |    23 |  142
|  16 |       HASH GROUP BY                   |                   |    23 |  358
|* 17 |        HASH JOIN OUTER                |                   | 57155 |  870
|* 18 |         HASH JOIN                     |                   | 56711 |  692
|* 19 |          FILTER                       |                   |       |
|* 20 |           HASH JOIN OUTER             |                   |   546K|    4
|* 21 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  22 |            VIEW                       |                   |   546K|    2
|  23 |             HASH GROUP BY             |                   |   546K|    1
|* 24 |              TABLE ACCESS STORAGE FULL| QMCHECKCARDDEFECT |   546K|    1
|* 25 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARDDEFECT |  2414K|    9
|  26 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
|  27 |     VIEW                              |                   |    23 |  142
|  28 |      HASH GROUP BY                    |                   |    23 |  220
|* 29 |       FILTER                          |                   |       |
|* 30 |        HASH JOIN OUTER                |                   |   131K|    1
|* 31 |         HASH JOIN OUTER               |                   |   114K|  706
|* 32 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARD       |   114K|  356
|  33 |          INDEX STORAGE FAST FULL SCAN | QMMESPPINFO_01    |  1552K|    4
|  34 |         VIEW                          |                   |   546K|    1
|  35 |          HASH GROUP BY                |                   |   546K|    1
|* 36 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARDDEFECT |   546K|    1
|  37 |    VIEW                               |                   |    23 |  142
|  38 |     HASH GROUP BY                     |                   |    23 |  103
|  39 |      VIEW                             | VM_NWVW_1         | 21881 |   96
|  40 |       HASH GROUP BY                   |                   | 21881 |  256
|* 41 |        FILTER                         |                   |       |
|* 42 |         HASH JOIN OUTER               |                   | 21881 |  256
|* 43 |          HASH JOIN OUTER              |                   | 19141 |  162
|* 44 |           HASH JOIN                   |                   | 18993 |  103
|* 45 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT | 18994 |   50
|* 46 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  47 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  48 |          VIEW                         |                   |   546K|    1
|  49 |           HASH GROUP BY               |                   |   546K|    1
|* 50 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access(NVL("A"."LINE",' ')=NVL("D"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("D"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("D"."LOC
              "A"."TESTDATE"="D"."TESTDATE"(+))
   3 - access(NVL("A"."LINE",' ')=NVL("C"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("C"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("C"."LOC
              "A"."TESTDATE"="C"."TESTDATE"(+))
   4 - access(NVL("A"."LINE",' ')=NVL("B"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("B"."CARTYPE"(+),' ') AND NVL("A"."LOC",' ')=NVL("B"."LOC"(
              "A"."TESTDATE"="B"."TESTDATE"(+))
   7 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
   8 - access("A22"."VIN"(+)="QCCC"."VIN")
  11 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  12 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  13 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  17 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  18 - access("T"."VIN"="QCCC"."VIN" AND NVL("T"."CARTYPE",' ')=NVL("A22"."CARTY
              NVL("T"."LINE",' ')=NVL("QCCC"."LINE",' '))
  19 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  20 - access("A22"."VIN"(+)="QCCC"."VIN")
  21 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  24 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  25 - storage("T"."DEFECTDESA" IS NOT NULL)
       filter("T"."DEFECTDESA" IS NOT NULL)
  29 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  30 - access("A22"."VIN"(+)="QCCC"."VIN")
  31 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  32 - storage("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='0
       filter("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='00
  36 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  41 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  42 - access("A22"."VIN"(+)="QCCC"."VIN")
  43 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  44 - access("T"."VIN"="QCCC"."VIN")
  45 - storage("T"."DEFECTDES"='漏雨')
       filter("T"."DEFECTDES"='漏雨')
  46 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  50 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 
2- Using Parallel Execution
---------------------------
Plan hash value: 4191165024
 
--------------------------------------------------------------------------------
| Id  | Operation                                                 | Name
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                                          |
|   1 |  PX COORDINATOR                                           |
|   2 |   PX SEND QC (RANDOM)                                     | :TQ10034
|   3 |    HASH GROUP BY                                          |
|   4 |     PX RECEIVE                                            |
|   5 |      PX SEND HASH                                         | :TQ10033
|   6 |       HASH GROUP BY                                       |
|*  7 |        HASH JOIN OUTER                                    |
|*  8 |         HASH JOIN OUTER                                   |
|*  9 |          HASH JOIN OUTER                                  |
|  10 |           PX RECEIVE                                      |
|  11 |            PX SEND HASH                                   | :TQ10029
|  12 |             VIEW                                          |
|  13 |              HASH GROUP BY                                |
|  14 |               PX RECEIVE                                  |
|  15 |                PX SEND HASH                               | :TQ10025
|  16 |                 HASH GROUP BY                             |
|* 17 |                  FILTER                                   |
|* 18 |                   HASH JOIN OUTER                         |
|  19 |                    PX RECEIVE                             |
|  20 |                     PX SEND HASH                          | :TQ10018
|* 21 |                      HASH JOIN OUTER BUFFERED             |
|  22 |                       PX RECEIVE                          |
|  23 |                        PX SEND HASH                       | :TQ10008
|  24 |                         PX BLOCK ITERATOR                 |
|* 25 |                          TABLE ACCESS STORAGE FULL        | QMCHECKCARD
|  26 |                       PX RECEIVE                          |
|  27 |                        PX SEND HASH                       | :TQ10009
|  28 |                         PX BLOCK ITERATOR                 |
|  29 |                          INDEX STORAGE FAST FULL SCAN     | QMMESPPINFO_
|  30 |                    PX RECEIVE                             |
|  31 |                     PX SEND HASH                          | :TQ10019
|  32 |                      VIEW                                 |
|  33 |                       HASH GROUP BY                       |
|  34 |                        PX RECEIVE                         |
|  35 |                         PX SEND HASH                      | :TQ10010
|  36 |                          PX BLOCK ITERATOR                |
|* 37 |                           TABLE ACCESS STORAGE FULL       | QMCHECKCARDD
|  38 |           PX RECEIVE                                      |
|  39 |            PX SEND HASH                                   | :TQ10030
|  40 |             VIEW                                          |
|  41 |              HASH GROUP BY                                |
|  42 |               PX RECEIVE                                  |
|  43 |                PX SEND HASH                               | :TQ10026
|  44 |                 HASH GROUP BY                             |
|* 45 |                  HASH JOIN OUTER                          |
|  46 |                   PX RECEIVE                              |
|  47 |                    PX SEND HASH                           | :TQ10020
|* 48 |                     HASH JOIN BUFFERED                    |
|  49 |                      JOIN FILTER CREATE                   | :BF0000
|  50 |                       PX RECEIVE                          |
|  51 |                        PX SEND HASH                       | :TQ10011
|* 52 |                         FILTER                            |
|* 53 |                          HASH JOIN OUTER BUFFERED         |
|  54 |                           PX RECEIVE                      |
|  55 |                            PX SEND HASH                   | :TQ10003
|  56 |                             PX BLOCK ITERATOR             |
|* 57 |                              TABLE ACCESS STORAGE FULL    | QMCHECKCARD
|  58 |                           PX RECEIVE                      |
|  59 |                            PX SEND HASH                   | :TQ10004
|  60 |                             VIEW                          |
|  61 |                              HASH GROUP BY                |
|  62 |                               PX RECEIVE                  |
|  63 |                                PX SEND HASH               | :TQ10000
|  64 |                                 PX BLOCK ITERATOR         |
|* 65 |                                  TABLE ACCESS STORAGE FULL| QMCHECKCARDD
|  66 |                      PX RECEIVE                           |
|  67 |                       PX SEND HASH                        | :TQ10012
|  68 |                        JOIN FILTER USE                    | :BF0000
|  69 |                         PX BLOCK ITERATOR                 |
|* 70 |                          TABLE ACCESS STORAGE FULL        | QMCHECKCARDD
|  71 |                   PX RECEIVE                              |
|  72 |                    PX SEND HASH                           | :TQ10021
|  73 |                     PX BLOCK ITERATOR                     |
|  74 |                      INDEX STORAGE FAST FULL SCAN         | QMMESPPINFO_
|  75 |          PX RECEIVE                                       |
|  76 |           PX SEND HASH                                    | :TQ10031
|  77 |            VIEW                                           |
|  78 |             HASH GROUP BY                                 |
|  79 |              PX RECEIVE                                   |
|  80 |               PX SEND HASH                                | :TQ10027
|  81 |                HASH GROUP BY                              |
|* 82 |                 FILTER                                    |
|* 83 |                  HASH JOIN OUTER                          |
|  84 |                   PX RECEIVE                              |
|  85 |                    PX SEND HASH                           | :TQ10022
|* 86 |                     HASH JOIN OUTER BUFFERED              |
|  87 |                      PX RECEIVE                           |
|  88 |                       PX SEND HASH                        | :TQ10013
|  89 |                        PX BLOCK ITERATOR                  |
|* 90 |                         TABLE ACCESS STORAGE FULL         | QMCHECKCARD
|  91 |                      PX RECEIVE                           |
|  92 |                       PX SEND HASH                        | :TQ10014
|  93 |                        PX BLOCK ITERATOR                  |
|  94 |                         INDEX STORAGE FAST FULL SCAN      | QMMESPPINFO_
|  95 |                   PX RECEIVE                              |
|  96 |                    PX SEND HASH                           | :TQ10023
|  97 |                     VIEW                                  |
|  98 |                      HASH GROUP BY                        |
|  99 |                       PX RECEIVE                          |
| 100 |                        PX SEND HASH                       | :TQ10015
| 101 |                         PX BLOCK ITERATOR                 |
|*102 |                          TABLE ACCESS STORAGE FULL        | QMCHECKCARDD
| 103 |         PX RECEIVE                                        |
| 104 |          PX SEND HASH                                     | :TQ10032
| 105 |           VIEW                                            |
| 106 |            HASH GROUP BY                                  |
| 107 |             PX RECEIVE                                    |
| 108 |              PX SEND HASH                                 | :TQ10028
| 109 |               HASH GROUP BY                               |
| 110 |                VIEW                                       | VM_NWVW_1
| 111 |                 HASH GROUP BY                             |
| 112 |                  PX RECEIVE                               |
| 113 |                   PX SEND HASH                            | :TQ10024
| 114 |                    HASH GROUP BY                          |
|*115 |                     FILTER                                |
|*116 |                      HASH JOIN OUTER                      |
| 117 |                       PX RECEIVE                          |
| 118 |                        PX SEND HASH                       | :TQ10016
|*119 |                         HASH JOIN OUTER BUFFERED          |
| 120 |                          PX RECEIVE                       |
| 121 |                           PX SEND HASH                    | :TQ10005
|*122 |                            HASH JOIN BUFFERED             |
| 123 |                             JOIN FILTER CREATE            | :BF0001
| 124 |                              PX RECEIVE                   |
| 125 |                               PX SEND HASH                | :TQ10001
| 126 |                                PX BLOCK ITERATOR          |
|*127 |                                 TABLE ACCESS STORAGE FULL | QMCHECKCARDD
| 128 |                             PX RECEIVE                    |
| 129 |                              PX SEND HASH                 | :TQ10002
| 130 |                               JOIN FILTER USE             | :BF0001
| 131 |                                PX BLOCK ITERATOR          |
|*132 |                                 TABLE ACCESS STORAGE FULL | QMCHECKCARD
| 133 |                          PX RECEIVE                       |
| 134 |                           PX SEND HASH                    | :TQ10006
| 135 |                            PX BLOCK ITERATOR              |
| 136 |                             INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_
| 137 |                       PX RECEIVE                          |
| 138 |                        PX SEND HASH                       | :TQ10017
| 139 |                         VIEW                              |
| 140 |                          HASH GROUP BY                    |
| 141 |                           PX RECEIVE                      |
| 142 |                            PX SEND HASH                   | :TQ10007
| 143 |                             PX BLOCK ITERATOR             |
|*144 |                              TABLE ACCESS STORAGE FULL    | QMCHECKCARDD
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   7 - access(NVL("A"."LINE",' ')=NVL("D"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ') AND "A"."TESTDATE"="D"."TESTDATE"(+))
   8 - access(NVL("A"."LINE",' ')=NVL("C"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ') AND "A"."TESTDATE"="C"."TESTDATE"(+))
   9 - access(NVL("A"."LINE",' ')=NVL("B"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ') AND "A"."TESTDATE"="B"."TESTDATE"(+))
  17 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN (TO_CHAR(INT
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              ELSE 0 END ,'yyyy-mm-dd')<='2017-02-15')
  18 - access("A22"."VIN"(+)="QCCC"."VIN")
  21 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  25 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  37 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  45 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  48 - access("T"."VIN"="QCCC"."VIN" AND NVL("T"."CARTYPE",' ')=NVL("A22"."CARTY
  52 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN (TO_CHAR(INT
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              ELSE 0 END ,'yyyy-mm-dd')<='2017-02-15')
  53 - access("A22"."VIN"(+)="QCCC"."VIN")
  57 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  65 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  70 - storage("T"."DEFECTDESA" IS NOT NULL)
       filter("T"."DEFECTDESA" IS NOT NULL)
  82 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN (TO_CHAR(INT
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              ELSE 0 END ,'yyyy-mm-dd')<='2017-02-15')
  83 - access("A22"."VIN"(+)="QCCC"."VIN")
  86 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  90 - storage("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='0
       filter("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='00
 102 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 115 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN (TO_CHAR(INT
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              ELSE 0 END ,'yyyy-mm-dd')<='2017-02-15')
 116 - access("A22"."VIN"(+)="QCCC"."VIN")
 119 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
 122 - access("T"."VIN"="QCCC"."VIN")
 127 - storage("T"."DEFECTDES"='漏雨')
       filter("T"."DEFECTDES"='漏雨')
 132 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001' AND SYS_OP_BLOOM_FILTE
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001' AND SYS_OP_BLOOM_FILTER
 144 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 
-------------------------------------------------------------------------------
ALTERNATIVE PLANS SECTION
-------------------------------------------------------------------------------
 
Plan 3
------
 
  Plan Origin                 :Cursor Cache
  Plan Hash Value             :2000621611
  Executions                  :1
  Elapsed Time                :7.833 sec
  CPU Time                    :7.792 sec
  Buffer Gets                 :493128
  Disk Reads                  :0
  Disk Writes                 :0
 
Notes:
  1. Statistics shown are averaged over multiple executions.
  2. The plan matches the original plan.
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name              | Rows  | Byte
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                   |    23 |  499
|   1 |  HASH GROUP BY                        |                   |    23 |  499
|*  2 |   HASH JOIN OUTER                     |                   |    23 |  499
|*  3 |    HASH JOIN OUTER                    |                   |    23 |  356
|*  4 |     HASH JOIN OUTER                   |                   |    23 |  213
|   5 |      VIEW                             |                   |    23 |   71
|   6 |       HASH GROUP BY                   |                   |    23 |  213
|*  7 |        FILTER                         |                   |       |
|*  8 |         HASH JOIN RIGHT OUTER         |                   |   550K|    4
|   9 |          VIEW                         |                   |   546K|    1
|  10 |           HASH GROUP BY               |                   |   546K|    1
|* 11 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
|* 12 |          HASH JOIN OUTER              |                   |   534K|    3
|* 13 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARD       |   529K|    1
|  14 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  15 |      VIEW                             |                   |    23 |  142
|  16 |       HASH GROUP BY                   |                   |    23 |  358
|* 17 |        HASH JOIN OUTER                |                   | 57155 |  870
|* 18 |         HASH JOIN                     |                   | 56711 |  692
|* 19 |          FILTER                       |                   |       |
|* 20 |           HASH JOIN OUTER             |                   |   546K|    4
|* 21 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  22 |            VIEW                       |                   |   546K|    2
|  23 |             HASH GROUP BY             |                   |   546K|    1
|* 24 |              TABLE ACCESS STORAGE FULL| QMCHECKCARDDEFECT |   546K|    1
|* 25 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARDDEFECT |  2414K|    9
|  26 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
|  27 |     VIEW                              |                   |    23 |  142
|  28 |      HASH GROUP BY                    |                   |    23 |  220
|* 29 |       FILTER                          |                   |       |
|* 30 |        HASH JOIN OUTER                |                   |   131K|    1
|* 31 |         HASH JOIN OUTER               |                   |   114K|  706
|* 32 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARD       |   114K|  356
|  33 |          INDEX STORAGE FAST FULL SCAN | QMMESPPINFO_01    |  1552K|    4
|  34 |         VIEW                          |                   |   546K|    1
|  35 |          HASH GROUP BY                |                   |   546K|    1
|* 36 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARDDEFECT |   546K|    1
|  37 |    VIEW                               |                   |    23 |  142
|  38 |     HASH GROUP BY                     |                   |    23 |  103
|  39 |      VIEW                             | VM_NWVW_1         | 21881 |   96
|  40 |       HASH GROUP BY                   |                   | 21881 |  256
|* 41 |        FILTER                         |                   |       |
|* 42 |         HASH JOIN OUTER               |                   | 21881 |  256
|* 43 |          HASH JOIN OUTER              |                   | 19141 |  162
|* 44 |           HASH JOIN                   |                   | 18993 |  103
|* 45 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT | 18994 |   50
|* 46 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  47 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  48 |          VIEW                         |                   |   546K|    1
|  49 |           HASH GROUP BY               |                   |   546K|    1
|* 50 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access(NVL("A"."LINE",' ')=NVL("D"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("D"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("D"."LOC
              "A"."TESTDATE"="D"."TESTDATE"(+))
   3 - access(NVL("A"."LINE",' ')=NVL("C"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("C"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("C"."LOC
              "A"."TESTDATE"="C"."TESTDATE"(+))
   4 - access(NVL("A"."LINE",' ')=NVL("B"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("B"."CARTYPE"(+),' ') AND NVL("A"."LOC",' ')=NVL("B"."LOC"(
              "A"."TESTDATE"="B"."TESTDATE"(+))
   7 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
   8 - access("A22"."VIN"(+)="QCCC"."VIN")
  11 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  12 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  13 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  17 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  18 - access("T"."VIN"="QCCC"."VIN" AND NVL("T"."CARTYPE",' ')=NVL("A22"."CARTY
              NVL("T"."LINE",' ')=NVL("QCCC"."LINE",' '))
  19 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  20 - access("A22"."VIN"(+)="QCCC"."VIN")
  21 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  24 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  25 - storage("T"."DEFECTDESA" IS NOT NULL)
       filter("T"."DEFECTDESA" IS NOT NULL)
  29 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  30 - access("A22"."VIN"(+)="QCCC"."VIN")
  31 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  32 - storage("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='0
       filter("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='00
  36 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  41 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  42 - access("A22"."VIN"(+)="QCCC"."VIN")
  43 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  44 - access("T"."VIN"="QCCC"."VIN")
  45 - storage("T"."DEFECTDES"='漏雨')
       filter("T"."DEFECTDES"='漏雨')
  46 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  50 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 
Plan 2
------
 
  Plan Origin                 :AWR
  Plan Hash Value             :2787380416
  Executions                  :3
  Elapsed Time                :3.792 sec
  CPU Time                    :3.647 sec
  Buffer Gets                 :493092
  Disk Reads                  :412038
  Disk Writes                 :0
 
Notes:
  1. Statistics shown are averaged over multiple executions.
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name              | Rows  | Byte
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                   |    23 |  499
|   1 |  HASH GROUP BY                        |                   |    23 |  499
|*  2 |   HASH JOIN OUTER                     |                   |    23 |  499
|*  3 |    HASH JOIN OUTER                    |                   |    23 |  356
|*  4 |     HASH JOIN OUTER                   |                   |    23 |  213
|   5 |      VIEW                             |                   |    23 |   71
|   6 |       HASH GROUP BY                   |                   |    23 |  213
|*  7 |        FILTER                         |                   |       |
|*  8 |         HASH JOIN RIGHT OUTER         |                   |   550K|    4
|   9 |          VIEW                         |                   |   546K|    1
|  10 |           HASH GROUP BY               |                   |   546K|    1
|* 11 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
|* 12 |          HASH JOIN OUTER              |                   |   534K|    3
|* 13 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARD       |   529K|    1
|  14 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  15 |      VIEW                             |                   |    23 |  142
|  16 |       HASH GROUP BY                   |                   |    23 |  358
|* 17 |        HASH JOIN OUTER                |                   | 57155 |  870
|* 18 |         HASH JOIN                     |                   | 56711 |  692
|* 19 |          FILTER                       |                   |       |
|* 20 |           HASH JOIN RIGHT OUTER       |                   |   546K|    4
|  21 |            VIEW                       |                   |   546K|    2
|  22 |             HASH GROUP BY             |                   |   546K|    1
|* 23 |              TABLE ACCESS STORAGE FULL| QMCHECKCARDDEFECT |   546K|    1
|* 24 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|* 25 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARDDEFECT |  2414K|    9
|  26 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
|  27 |     VIEW                              |                   |    23 |  142
|  28 |      HASH GROUP BY                    |                   |    23 |  220
|* 29 |       FILTER                          |                   |       |
|* 30 |        HASH JOIN OUTER                |                   |   131K|    1
|* 31 |         HASH JOIN OUTER               |                   |   114K|  706
|* 32 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARD       |   114K|  356
|  33 |          INDEX STORAGE FAST FULL SCAN | QMMESPPINFO_01    |  1552K|    4
|  34 |         VIEW                          |                   |   546K|    1
|  35 |          HASH GROUP BY                |                   |   546K|    1
|* 36 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARDDEFECT |   546K|    1
|  37 |    VIEW                               |                   |    23 |  142
|  38 |     HASH GROUP BY                     |                   |    23 |  103
|  39 |      VIEW                             | VM_NWVW_1         | 21881 |   96
|  40 |       HASH GROUP BY                   |                   | 21881 |  256
|* 41 |        HASH JOIN OUTER                |                   | 21881 |  256
|* 42 |         FILTER                        |                   |       |
|* 43 |          HASH JOIN OUTER              |                   | 21711 |  188
|* 44 |           HASH JOIN                   |                   | 18993 |  103
|* 45 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT | 18994 |   50
|* 46 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|  47 |           VIEW                        |                   |   546K|    1
|  48 |            HASH GROUP BY              |                   |   546K|    1
|* 49 |             TABLE ACCESS STORAGE FULL | QMCHECKCARDDEFECT |   546K|    1
|  50 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access(NVL("A"."LINE",' ')=NVL("D"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("D"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("D"."LOC
              "A"."TESTDATE"="D"."TESTDATE"(+))
   3 - access(NVL("A"."LINE",' ')=NVL("C"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("C"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("C"."LOC
              "A"."TESTDATE"="C"."TESTDATE"(+))
   4 - access(NVL("A"."LINE",' ')=NVL("B"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("B"."CARTYPE"(+),' ') AND NVL("A"."LOC",' ')=NVL("B"."LOC"(
              "A"."TESTDATE"="B"."TESTDATE"(+))
   7 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
   8 - access("A22"."VIN"(+)="QCCC"."VIN")
  11 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  12 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  13 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  17 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  18 - access("T"."VIN"="QCCC"."VIN" AND NVL("T"."CARTYPE",' ')=NVL("A22"."CARTY
              NVL("T"."LINE",' ')=NVL("QCCC"."LINE",' '))
  19 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  20 - access("A22"."VIN"(+)="QCCC"."VIN")
  23 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  24 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  25 - storage("T"."DEFECTDESA" IS NOT NULL)
       filter("T"."DEFECTDESA" IS NOT NULL)
  29 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  30 - access("A22"."VIN"(+)="QCCC"."VIN")
  31 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  32 - storage("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='0
       filter("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='00
  36 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  41 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  42 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  43 - access("A22"."VIN"(+)="QCCC"."VIN")
  44 - access("T"."VIN"="QCCC"."VIN")
  45 - storage("T"."DEFECTDES"='漏雨')
       filter("T"."DEFECTDES"='漏雨')
  46 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  49 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 
Plan 1
------
 
  Plan Origin                 :AWR
  Plan Hash Value             :2556778791
  Executions                  :105
  Elapsed Time                :3.788 sec
  CPU Time                    :3.606 sec
  Buffer Gets                 :493085
  Disk Reads                  :412038
  Disk Writes                 :0
 
Notes:
  1. Statistics shown are averaged over multiple executions.
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name              | Rows  | Byte
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                   |    23 |  499
|   1 |  HASH GROUP BY                        |                   |    23 |  499
|*  2 |   HASH JOIN OUTER                     |                   |    23 |  499
|*  3 |    HASH JOIN OUTER                    |                   |    23 |  356
|*  4 |     HASH JOIN OUTER                   |                   |    23 |  213
|   5 |      VIEW                             |                   |    23 |   71
|   6 |       HASH GROUP BY                   |                   |    23 |  213
|*  7 |        FILTER                         |                   |       |
|*  8 |         HASH JOIN RIGHT OUTER         |                   |   550K|    4
|   9 |          VIEW                         |                   |   546K|    1
|  10 |           HASH GROUP BY               |                   |   546K|    1
|* 11 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARDDEFECT |   546K|    1
|* 12 |          HASH JOIN OUTER              |                   |   534K|    3
|* 13 |           TABLE ACCESS STORAGE FULL   | QMCHECKCARD       |   529K|    1
|  14 |           INDEX STORAGE FAST FULL SCAN| QMMESPPINFO_01    |  1552K|    4
|  15 |      VIEW                             |                   |    23 |  142
|  16 |       HASH GROUP BY                   |                   |    23 |  358
|* 17 |        HASH JOIN OUTER                |                   | 57155 |  870
|* 18 |         HASH JOIN                     |                   | 56711 |  692
|* 19 |          FILTER                       |                   |       |
|* 20 |           HASH JOIN RIGHT OUTER       |                   |   546K|    4
|  21 |            VIEW                       |                   |   546K|    2
|  22 |             HASH GROUP BY             |                   |   546K|    1
|* 23 |              TABLE ACCESS STORAGE FULL| QMCHECKCARDDEFECT |   546K|    1
|* 24 |            TABLE ACCESS STORAGE FULL  | QMCHECKCARD       |   529K|    1
|* 25 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARDDEFECT |  2414K|    9
|  26 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
|  27 |     VIEW                              |                   |    23 |  142
|  28 |      HASH GROUP BY                    |                   |    23 |  103
|  29 |       VIEW                            | VM_NWVW_1         | 21881 |   96
|  30 |        HASH GROUP BY                  |                   | 21881 |  256
|* 31 |         HASH JOIN OUTER               |                   | 21881 |  256
|* 32 |          FILTER                       |                   |       |
|* 33 |           HASH JOIN OUTER             |                   | 21711 |  188
|* 34 |            HASH JOIN                  |                   | 18993 |  103
|* 35 |             TABLE ACCESS STORAGE FULL | QMCHECKCARDDEFECT | 18994 |   50
|* 36 |             TABLE ACCESS STORAGE FULL | QMCHECKCARD       |   529K|    1
|  37 |            VIEW                       |                   |   546K|    1
|  38 |             HASH GROUP BY             |                   |   546K|    1
|* 39 |              TABLE ACCESS STORAGE FULL| QMCHECKCARDDEFECT |   546K|    1
|  40 |          INDEX STORAGE FAST FULL SCAN | QMMESPPINFO_01    |  1552K|    4
|  41 |    VIEW                               |                   |    23 |  142
|  42 |     HASH GROUP BY                     |                   |    23 |  220
|* 43 |      FILTER                           |                   |       |
|* 44 |       HASH JOIN OUTER                 |                   |   131K|    1
|* 45 |        HASH JOIN OUTER                |                   |   114K|  706
|* 46 |         TABLE ACCESS STORAGE FULL     | QMCHECKCARD       |   114K|  356
|  47 |         INDEX STORAGE FAST FULL SCAN  | QMMESPPINFO_01    |  1552K|    4
|  48 |        VIEW                           |                   |   546K|    1
|  49 |         HASH GROUP BY                 |                   |   546K|    1
|* 50 |          TABLE ACCESS STORAGE FULL    | QMCHECKCARDDEFECT |   546K|    1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access(NVL("A"."LINE",' ')=NVL("C"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("C"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("C"."LOC
              "A"."TESTDATE"="C"."TESTDATE"(+))
   3 - access(NVL("A"."LINE",' ')=NVL("D"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("D"."CARSERIEL"(+),' ') AND NVL("A"."LOC",' ')=NVL("D"."LOC
              "A"."TESTDATE"="D"."TESTDATE"(+))
   4 - access(NVL("A"."LINE",' ')=NVL("B"."LINE"(+),' ') AND NVL("A"."CARSERIEL"
              ')=NVL("B"."CARTYPE"(+),' ') AND NVL("A"."LOC",' ')=NVL("B"."LOC"(
              "A"."TESTDATE"="B"."TESTDATE"(+))
   7 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
   8 - access("A22"."VIN"(+)="QCCC"."VIN")
  11 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  12 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  13 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  17 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  18 - access("T"."VIN"="QCCC"."VIN" AND NVL("T"."CARTYPE",' ')=NVL("A22"."CARTY
              NVL("T"."LINE",' ')=NVL("QCCC"."LINE",' '))
  19 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  20 - access("A22"."VIN"(+)="QCCC"."VIN")
  23 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  24 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  25 - storage("T"."DEFECTDESA" IS NOT NULL)
       filter("T"."DEFECTDESA" IS NOT NULL)
  31 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  32 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  33 - access("A22"."VIN"(+)="QCCC"."VIN")
  34 - access("T"."VIN"="QCCC"."VIN")
  35 - storage("T"."DEFECTDES"='漏雨')
       filter("T"."DEFECTDES"='漏雨')
  36 - storage("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
       filter("QCCC"."LOC"='P1' AND "QCCC"."PLANT"='001')
  39 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
  43 - filter(TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE")-CASE  WHEN
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')>='2017-02-14' AND TO_CHAR(INTERNAL_FUNCTION("A22"."
              (TO_CHAR(INTERNAL_FUNCTION("A22"."MINDATE"),'hh24mi')<'0750') THEN
              ,'yyyy-mm-dd')<='2017-02-15')
  44 - access("A22"."VIN"(+)="QCCC"."VIN")
  45 - access("T222"."FATHERMATESEQNO"(+)="QCCC"."VIN")
  46 - storage("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='0
       filter("QCCC"."STRAIGHT"='1' AND "QCCC"."LOC"='P1' AND "QCCC"."PLANT"='00
  50 - storage("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
       filter("CARDTYPES"='Z' AND NVL("CONINVFLAG",'N')<>'Y')
 
-------------------------------------------------------------------------------
Object ID  : 285378
Schema Name: JC800
SQL ID     : 37dx4sx5vk529
SQL Text   : select distinct scmrfqcont0_.vendorNO as x0_0_,
             scmrfqcont0_.inquryNo as x1_0_, scmrfqcont0_.inquryTimes as
             x2_0_, scmsupplie1_.shortName as x3_0_ from SCMRFQContact
             scmrfqcont0_, SCMSupplierResource scmsupplie1_ where
             (scmrfqcont0_.client='800' )and(scmrfqcont0_.vendorNO=scmsupplie1
             _.vendorNO )and(scmrfqcont0_.client=scmsupplie1_.client
             )and(scmrfqcont0_.vendorNO not in(select scmcomplet2_.vendorNO
             from SCMCompletion scmcomplet2_ where
             (scmrfqcont0_.client=scmcomplet2_.client
             )and(scmrfqcont0_.inquryNo=scmcomplet2_.inquryNo
             )and(scmrfqcont0_.inquryTimes=scmcomplet2_.inquryTimes
             )))and((scmrfqcont0_.inquryNo , scmrfqcont0_.inquryTimes)in(('201
             4030011' , '1'),('2014040062' , '2'),('2014040064' ,
             '4'),('2014040067' , '6'),('2014040219' , '5'),('2014040229' ,
             '4'),('2014050002' , '3'),('2014050004' , '3'),('2014050005' ,
             '2'),('2014050011' , '5'),('2014050023' , '5'),('2014050029' ,
             '5'),('2014050043' , '2'),('2014050053' , '2'),('2014050056' ,
             '2'),('2014050123' , '3'),('2014050144' , '2'),('2014050152' ,
             '3'),('2014050168' , '5'),('2014050233' , '2'),('2014050253' ,
             '3'),('2014050370' , '3'),('2014060003' , '1'),('2014060142' ,
             '2'),('2014060217' , '2'),('2014070121' , '2'),('2014090178' ,
             '5'),('2014090227' , '3'),('2014090278' , '4'),('2014110374' ,
             '2'),('2014120129' , '3'),('2014120480' , '2'),('2015010089' ,
             '1'),('2015030194' , '1'),('2015030263' , '4'),('2015040209' ,
             '1'),('2015040346' , '1'),('2015050026' , '6'),('2015060075' ,
             '1'),('2015060076' , '1'),('2015060081' , '1'),('2015060217' ,
             '1'),('2015060286' , '3'),('2015060331' , '3'),('2015060332' ,
             '3'),('2015060335' , '2'),('2015060390' , '2'),('2015070056' ,
             '3'),('2015070212' , '1'),('2015070300' , '2'),('2015080057' ,
             '1'),('2015080115' , '1'),('2015080301' , '7'),('2015090010' ,
             '3'),('2015090034' , '6'),('2015090181' , '4'),('2015090304' ,
             '1'),('2015090310' , '11'),('2015090421' , '8'),('2015090493' ,
             '3'),('2015100306' , '1'),('2015110299' , '1'),('2015120047' ,
             '3'),('2015120049' , '1'),('2015120060' , '5'),('2015120176' ,
             '3'),('2015120255' , '3'),('2015120424' , '4'),('2015120448' ,
             '2'),('2015120489' , '4'),('2016010006' , '2'),('2016010018' ,
             '1'),('2016010019' , '2'),('2016010020' , '2'),('2016010046' ,
             '4'),('2016010072' , '1'),('2016010114' , '2'),('2016010190' ,
             '3'),('2016010249' , '2'),('2016020076' , '3'),('2016030060' ,
             '1'),('2016030080' , '3'),('2016030100' , '3'),('2016030142' ,
             '2'),('2016030171' , '5'),('2016030254' , '2'),('2016030255' ,
             '3'),('2016030256' , '2'),('2016030377' , '5'),('2016030387' ,
             '4'),('2016030424' , '5'),('2016030432' , '5'),('2016040359' ,
             '3'),('2016040411' , '1'),('2016040425' , '5'),('2016040478' ,
             '3'),('2016040486' , '1'),('2016050123' , '2'),('2016050196' ,
             '3'),('2016050269' , '2'),('2016050373' , '2'),('2016060125' ,
             '2'),('2016060148' , '6'),('2016060160' , '3'),('2016060204' ,
             '3'),('2016060231' , '3'),('2016060250' , '2'),('2016060318' ,
             '1'),('2016070062' , '3'),('2016070135' , '6'),('2016070259' ,
             '1'),('2016070298' , '3'),('2016070380' , '3'),('2016070381' ,
             '3'),('2016080021' , '3'),('2016080117' , '2'),('2016080141' ,
             '1'),('2016080142' , '1'),('2016080153' , '1'),('2016080156' ,
             '4'),('2016080182' , '2'),('2016080183' , '4'),('2016080287' ,
             '4'),('2016080337' , '2'),('2016080344' , '2'),('2016080369' ,
             '3'),('2016080375' , '1'),('2016080377' , '1'),('2016080382' ,
             '2'),('2016080425' , '4'),('2016080428' , '4'),('2016090019' ,
             '3'),('2016090020' , '2'),('2016090021' , '2'),('2016090260' ,
             '4'),('2016090261' , '5'),('2016090267' , '1'),('2016090276' ,
             '5'),('2016090322' , '2'),('2016100146' , '2'),('2016100150' ,
             '2'),('2016100254' , '5'),('2016100255' , '4'),('2016100313' ,
             '4'),('2016100315' , '2'),('2016110052' , '2'),('2016110056' ,
             '2'),('2016110061' , '2'),('2016110271' , '2'),('2016110272' ,
             '4'),('2016110304' , '2'),('2016110306' , '2'),('2016110456' ,
             '3'),('2016110465' , '3'),('2016110479' , '7'),('2016110504' ,
             '2'),('2016110622' , '2'),('2016120055' , '2'),('2016120056' ,
             '2'),('2016120234' , '1'),('2016120312' , '2'),('2016120351' ,
             '2'),('2016120474' , '2'),('2017010001' , '1'),('2017010015' ,
             '2'),('2017010125' , '2'),('2017010192' , '2'),('2017010205' ,
             '2'),('2017010258' , '1'),('2017020029' , '1'),('2017020168' ,
             '1'),('2017020170' , '1'))) order by  scmrfqcont0_.vendorNO
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.69%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001002C on JC800.SCMCOMPLETION("INQURYNO","INQURY
    TIMES");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_0001002D on JC800.SCMSUPPLIERRESOURCE("CLIENT","VE
    NDORNO","SHORTNAME");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
2- Restructure SQL finding (see plan 1 in explain plans section)
----------------------------------------------------------------
  优化程序不能取消执行计划的行 ID 2 处的子查询的嵌套。
 
  Recommendation
  --------------
  - 考虑用 "NOT EXISTS" 代替 "NOT IN", 或者确保已通过添加 "NOT NULL" 约束条件或 "IS NOT NULL"
    谓词将 "NOT IN" 运算符的两边所使用的列声明为 "NOT NULL"。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original
-----------
Plan hash value: 3079065381
 
--------------------------------------------------------------------------------
| Id  | Operation                              | Name                | Rows  | B
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                       |                     |    23 |
|   1 |  SORT UNIQUE                           |                     |    23 |
|*  2 |   FILTER                               |                     |       |
|*  3 |    HASH JOIN                           |                     |   117 |
|*  4 |     INDEX STORAGE FAST FULL SCAN       | SCMRFQCONTACT_U     |   125 |
|*  5 |     TABLE ACCESS STORAGE FULL          | SCMSUPPLIERRESOURCE |  2242 | 6
|*  6 |    TABLE ACCESS STORAGE FULL FIRST ROWS| SCMCOMPLETION       |     1 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter( NOT EXISTS (SELECT 0 FROM "SCMCOMPLETION" "SCMCOMPLET2_" WHERE
              "SCMCOMPLET2_"."INQURYNO"=:B1 AND "SCMCOMPLET2_"."INQURYTIMES"=:B2
              AND LNNVL("SCMCOMPLET2_"."VENDORNO"<>:B4)))
   3 - access("SCMRFQCONT0_"."VENDORNO"="SCMSUPPLIE1_"."VENDORNO" AND
              "SCMRFQCONT0_"."CLIENT"="SCMSUPPLIE1_"."CLIENT")
   4 - storage(("SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='11' AND "SCMRFQCONT0_"."INQURYNO"='2
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCON)
       filter(("SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='2
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='11' AND "SCMRFQCONT0_"."INQURYNO"='2
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCON)
   5 - storage("SCMSUPPLIE1_"."CLIENT"='800')
       filter("SCMSUPPLIE1_"."CLIENT"='800')
   6 - filter("SCMCOMPLET2_"."INQURYNO"=:B1 AND "SCMCOMPLET2_"."INQURYTIMES"=:B2
              "SCMCOMPLET2_"."CLIENT"=:B3 AND LNNVL("SCMCOMPLET2_"."VENDORNO"<>:
 
2- Using New Indices
--------------------
Plan hash value: 781459113
 
--------------------------------------------------------------------------------
| Id  | Operation                       | Name            | Rows  | Bytes | Cost
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                |                 |   117 |  6318 |   23
|   1 |  SORT ORDER BY                  |                 |   117 |  6318 |   23
|*  2 |   FILTER                        |                 |       |       |
|*  3 |    HASH JOIN                    |                 |   117 |  6318 |   11
|*  4 |     INDEX STORAGE FAST FULL SCAN| SCMRFQCONTACT_U |   125 |  3250 |   11
|*  5 |     INDEX STORAGE FAST FULL SCAN| IDX$$_0001002D  |  2242 | 62776 |
|*  6 |    TABLE ACCESS BY INDEX ROWID  | SCMCOMPLETION   |     1 |    26 |
|*  7 |     INDEX RANGE SCAN            | IDX$$_0001002C  |     1 |       |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter( NOT EXISTS (SELECT 0 FROM "SCMCOMPLETION" "SCMCOMPLET2_" WHERE
              "SCMCOMPLET2_"."INQURYTIMES"=:B1 AND "SCMCOMPLET2_"."INQURYNO"=:B2
              "SCMCOMPLET2_"."CLIENT"=:B3 AND LNNVL("SCMCOMPLET2_"."VENDORNO"<>:
   3 - access("SCMRFQCONT0_"."VENDORNO"="SCMSUPPLIE1_"."VENDORNO" AND
              "SCMRFQCONT0_"."CLIENT"="SCMSUPPLIE1_"."CLIENT")
   4 - storage(("SCMRFQCONT0_"."INQURYTIMES"='1' AND
              "SCMRFQCONT0_"."INQURYNO"='2014030011' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014060003' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015010089' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015030194' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015040209' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015040346' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015060075' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015060076' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015060081' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015060217' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015070212' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015080057' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015080115' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015090304' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015100306' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015110299' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015120049' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016010018' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016010072' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016030060' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016040411' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016040486' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016060318' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016070259' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016080141' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016080142' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016080153' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016080375' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016080377' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016090267' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2016120234' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2017010001' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2017010258' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2017020029' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2017020168' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2017020170' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015090310' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014040062' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014050005' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014050043' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014050053' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014050056' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014050144' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014050233' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014060142' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014060217' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014070121' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014110374' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2014120480' OR "SCMRFQCONT0_"."INQURYTI
              "SCMRFQCONT0_"."INQURYNO"='2015060335' OR "SCMRFQCONT0_"."INQURYTI
       filter(("SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='2
              OR "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"=
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='1' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='11' AND "SCMRFQCONT0_"."INQURYNO"='2
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCONT0_"."INQURYNO"='20
              "SCMRFQCONT0_"."INQURYTIMES"='2' AND "SCMRFQCON)
   5 - storage("SCMSUPPLIE1_"."CLIENT"='800')
       filter("SCMSUPPLIE1_"."CLIENT"='800')
   6 - filter("SCMCOMPLET2_"."CLIENT"=:B1 AND LNNVL("SCMCOMPLET2_"."VENDORNO"<>:
   7 - access("SCMCOMPLET2_"."INQURYNO"=:B1 AND "SCMCOMPLET2_"."INQURYTIMES"=:B2
 
-------------------------------------------------------------------------------
Object ID  : 285290
Schema Name: REPDBNEW
SQL ID     : 071wjj7t0qtpn
SQL Text   : DELETE FROM FT_GLD_DOCLINE_T WHERE FISCALYEAR =
             TO_CHAR(ADD_MONTHS(:B1 ,-2) , 'YYYY') AND POSTPERIOD =
             TO_CHAR(ADD_MONTHS(:B1 ,-2) , 'MM')
 
-------------------------------------------------------------------------------
FINDINGS SECTION (1 finding)
-------------------------------------------------------------------------------
 
1- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 99.03%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index REPDBNEW.IDX$$_00010004 on
    REPDBNEW.FT_GLD_DOCLINE_T("FISCALYEAR","POSTPERIOD");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original
-----------
Plan hash value: 2347627567
 
--------------------------------------------------------------------------------
| Id  | Operation                  | Name             | Rows  | Bytes | Cost (%C
--------------------------------------------------------------------------------
|   0 | DELETE STATEMENT           |                  |  1421K|    47M|   439K
|   1 |  DELETE                    | FT_GLD_DOCLINE_T |       |       |
|*  2 |   TABLE ACCESS STORAGE FULL| FT_GLD_DOCLINE_T |  1421K|    47M|   439K
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - storage("FISCALYEAR"=TO_CHAR(ADD_MONTHS(:B1,(-2)),'YYYY') AND
              "POSTPERIOD"=TO_CHAR(ADD_MONTHS(:B1,(-2)),'MM'))
       filter("FISCALYEAR"=TO_CHAR(ADD_MONTHS(:B1,(-2)),'YYYY') AND
              "POSTPERIOD"=TO_CHAR(ADD_MONTHS(:B1,(-2)),'MM'))
 
2- Using New Indices
--------------------
Plan hash value: 3368067652
 
--------------------------------------------------------------------------------
| Id  | Operation         | Name             | Rows  | Bytes | Cost (%CPU)| Time
--------------------------------------------------------------------------------
|   0 | DELETE STATEMENT  |                  |  1421K|    78M|  4260   (1)| 00:0
|   1 |  DELETE           | FT_GLD_DOCLINE_T |       |       |            |
|*  2 |   INDEX RANGE SCAN| IDX$$_00010004   |  1421K|    78M|  4260   (1)| 00:0
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("FISCALYEAR"=TO_CHAR(ADD_MONTHS(:B1,(-2)),'YYYY') AND
              "POSTPERIOD"=TO_CHAR(ADD_MONTHS(:B1,(-2)),'MM'))
 
-------------------------------------------------------------------------------
Object ID  : 285328
Schema Name: JC800
SQL ID     : 90tacxzfd05sm
SQL Text   : select glddochead1_.docNO as x0_0_, glddochead1_.fiscalYear as
             x1_0_, glddochead1_.POSTPERIOD as x2_0_, glddocline2_.locCurrAmt
             as x3_0_, glddocline2_.GLAcct2 as x4_0_, glddocline2_.DCIndic as
             x5_0_, glddocline2_.ordNO as x6_0_ from MLDTemp1 mldtemp10_,
             GLDDocHeader glddochead1_, GLDDocLine glddocline2_ where
             (glddochead1_.client='800' )and(glddochead1_.client=glddocline2_.
             client )and(glddochead1_.docNO=glddocline2_.docNO
             )and(glddochead1_.fiscalYear=glddocline2_.fiscalYear
             )and(glddochead1_.POSTPERIOD=glddocline2_.POSTPERIOD
             )and((glddochead1_.referenceProc<>'AUAK'
             )or(glddochead1_.referenceProc is null
             ))and(((glddochead1_.fiscalYear<'2017'
             ))or((glddochead1_.fiscalYear='2017'
             )and(glddochead1_.POSTPERIOD<='01' )))and((glddocline2_.GLAcct2
             in('50010204' , '5301021101' , '5301021102' , '5001090802' ,
             '5301020802' , '5301020801' , '53010106' , '53010108' ,
             '53010109' , '6602050201' , '6602050202' , '6602050301' ,
             '5001090499' , '6602050302' , '1604020201' , '5301011202' ,
             '5301011201' , '66020304' , '5301010704' , '5301010701' ,
             '53010299040401' , '500109029999' , '5301019999' ,
             '530101990301' , '66020302' , '530101990302' , '5301020502' ,
             '5301020503' , '66020599' , '50010603' , '5301020101' ,
             '6602010102' , '6602010103' , '6602010101' , '50010302' ,
             '5001099912' , '500109020302' , '5301029901' , '5301029905' ,
             '5301029906' , '53010209' , '53010208' , '5001099906' ,
             '5001099908' , '5301010102' , '5301010101' , '1601' ,
             '6602999902' , '53010119' , '660209020202' , '530102160299' ,
             '660209020201' , '5301010399' , '53010112' , '53010111' ,
             '53010114' , '53010116' , '530102160399' , '66022202' ,
             '5301011102' , '53010219' , '53010120' , '5001090302' ,
             '5301011101' , '500109990901' , '53010216' , '53010211' ,
             '66022207' , '53010212' , '53010213' , '500109990402' ,
             '500109990401' , '14040502' , '14040501' , '530102999902' ,
             '530102999901' , '5301019904020202' , '530102999903' ,
             '66022903' , '5301019904020201' , '50010508' , '530102999905' ,
             '66022907' , '530101999999' , '500109991004' , '530101160299' ,
             '530102160101' , '500190' , '530101160306' , '530101160199' ,
             '530101160305' , '530102999999' , '50010906' , '530101160304' ,
             '530101160303' , '500109991003' , '530101160302' ,
             '500109991002' , '500109991001' , '530101160301' , '5001090704'
             , '530101030102' , '530101030103' , '530101030101' ,
             '530102990301' , '530102990302' , '5301020701' , '6602050402' ,
             '1604030201' , '50010801' , '66020901' , '500109040201' ,
             '660236' , '660237' , '5301010802' , '6602220501' , '5301010801'
             , '5001091203' , '6602010401' , '5301019901' , '5301019902' ,
             '5301019904' , '5301019905' , '5301019906' , '5301010502' ,
             '5301010501' , '5301010401' , '5301010503' , '5301010403' ,
             '5301010402' , '660226' , '660227' , '660224' , '5301021201' ,
             '660113' , '5301021803' , '5301021202' , '170199' , '660118' ,
             '660119' , '500109991099' , '6602090401' , '5301029999' ,
             '660213' , '660216' , '660215' , '660210' , '500109990302' ,
             '660212' , '660211' , '221118' , '221112' , '530101030402' ,
             '530101990403' , '530101030401' , '530101030404' , '66020103' ,
             '530101990401' , '530101030403' , '530101030406' ,
             '530101030405' , '530101030407' , '5301011801' , '5301011802' ,
             '5301011803' , '66020105' , '66020106' , '66020107' ,
             '5301010303' , '5301010304' , '6602291301' , '53010199040201' ,
             '5301010309' , '5301010201' , '5301010305' , '660208' ,
             '5301010307' , '530101160105' , '66020402' , '530101160103' ,
             '530101160102' , '500109040301' , '530101160204' ,
             '530101160101' , '530101160203' , '530101160202' ,
             '500109040303' , '66020401' , '500109040302' , '530101160201' ,
             '530101160206' , '530101160205' , '530101160399' ,
             '500109040102' , '530102160206' , '5301010310' , '500109040103'
             , '530102160204' , '530102160205' , '530102160202' ,
             '530102160203' , '500109040101' , '530102160201' ,
             '530102160301' , '1604010201' , '530102160302' , '530102160305'
             , '530102160303' , '530102160304' , '66021403' , '66021404' ,
             '5001090406' , '66021408' , '500109990999' , '530101999902' ,
             '530101999903' , '530101999901' , '66021401' , '66021402' ,
             '530101999905' , '5001090101' , '53010199040402' ,
             '53010199040401')))and((mldtemp10_.p1=glddocline2_.ordNO ))
 
-------------------------------------------------------------------------------
FINDINGS SECTION (3 findings)
-------------------------------------------------------------------------------
 
1- Statistics Finding
---------------------
  尚未分析表 "JC800"."MLDTEMP1"。
 
  Recommendation
  --------------
  - 考虑收集此表的优化程序统计信息。
    execute dbms_stats.gather_table_stats(ownname => 'JC800', tabname =>
            'MLDTEMP1', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
            method_opt => 'FOR ALL COLUMNS SIZE AUTO');
 
  Rationale
  ---------
    为了选择好的执行计划, 优化程序需要此表的最新统计信息。
 
2- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划。
  SQL 概要文件未自动创建, 因为优化程序统计信息已陈旧或缺失。在创建 SQL 概要文件前, 应先解决基本优化程序统计信息的问题。
 
  Recommendation (estimated benefit: 99%)
  ---------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285328, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):             .000021           .000026      -23.8 %
  CPU Time (s):                   .0001                 0        100 %
  User I/O Time (s):                  0                 0
  Buffer Gets:                        0                 0
  Physical Read Requests:             0                 0
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0                 0
  Physical Write Bytes:               0                 0
  Rows Processed:                     0                 0
  Fetches:                            0                 0
  Executions:                         1                 1
 
  Notes
  -----
  1. the original plan 的统计信息是 10 执行的平均值。
  2. the SQL profile plan 的统计信息是 10 执行的平均值。
 
3- Alternative Plan Finding
---------------------------
  通过搜索系统的实时和历史性能数据找到了此语句的某些替代执行计划。
 
  The following table lists these plans ranked by their average elapsed time.
  See section "ALTERNATIVE PLANS SECTION" for detailed information on each
  plan.
 
  id plan hash  last seen            elapsed (s)  origin          note
  -- ---------- -------------------- ------------ --------------- --------------
   1 1394006653  2017-02-14/08:00:06       51.937 AWR
 
  Information
  -----------
  - 因为找不到原始计划的任何执行历史记录, SQL 优化指导无法确定这些执行计划中是否有一些执行计划优于原始计划。但是,
    如果您知道某个替代计划优于原始计划, 可以为该替代计划创建 SQL 计划基线。这将指示 Oracle 优化程序在将来优先于任何其他选择来选取它。
    execute dbms_sqltune.create_sql_plan_baseline(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285328, owner_name =>
            'SYS', plan_hash_value => xxxxxxxx);
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 1965946450
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name            | Rows  | Bytes
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                 |   371K|   732M
|   1 |  NESTED LOOPS                         |                 |       |
|   2 |   NESTED LOOPS                        |                 |   371K|   732M
|   3 |    NESTED LOOPS                       |                 |   735K|  1430M
|   4 |     TABLE ACCESS STORAGE FULL         | MLDTEMP1        |  8168 |    15M
|*  5 |     TABLE ACCESS BY GLOBAL INDEX ROWID| GLDDOCLINE      |    90 |  3420
|*  6 |      INDEX RANGE SCAN                 | GLDDOCLINE_ORD1 |   423 |
|*  7 |    INDEX RANGE SCAN                   | GLDDOCHEADER_U  |     1 |
|*  8 |   TABLE ACCESS BY INDEX ROWID         | GLDDOCHEADER    |     1 |    26
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   5 - filter("GLDDOCLINE2_"."CLIENT"='800')
   6 - access("MLDTEMP10_"."P1"="GLDDOCLINE2_"."ORDNO")
       filter("GLDDOCLINE2_"."GLACCT2"='14040501' OR "GLDDOCLINE2_"."GLACCT2"='1
              "GLDDOCLINE2_"."GLACCT2"='1601' OR "GLDDOCLINE2_"."GLACCT2"='16040
              "GLDDOCLINE2_"."GLACCT2"='1604020201' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='170199' OR "GLDDOCLINE2_"."GLACCT2"='221
              "GLDDOCLINE2_"."GLACCT2"='50010204' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='50010508' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='50010801' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='500109020302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001090302' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109040102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109040201' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109040302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001090406' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='50010906' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5001090802' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109990302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109990402' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001099908' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109990999' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109991002' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109991004' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001099912' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010101' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010201' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='530101030102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5301010303' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='530101030401' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030403' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030405' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030407' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5301010307' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010310' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010401' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010403' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010502' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010106' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301010704' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010801' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010109' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301011101' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010112' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301011202' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010116' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='530101160102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160105' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160201' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160203' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160205' OR "GLDDOCLINE2_"."GLACCT2
   7 - access("GLDDOCHEAD1_"."DOCNO"="GLDDOCLINE2_"."DOCNO" AND
              "GLDDOCHEAD1_"."POSTPERIOD"="GLDDOCLINE2_"."POSTPERIOD" AND
              "GLDDOCHEAD1_"."FISCALYEAR"="GLDDOCLINE2_"."FISCALYEAR" AND "GLDDO
       filter("GLDDOCHEAD1_"."FISCALYEAR"<'2017' OR "GLDDOCHEAD1_"."FISCALYEAR"=
              "GLDDOCHEAD1_"."POSTPERIOD"<='01')
   8 - filter("GLDDOCHEAD1_"."REFERENCEPROC"<>'AUAK' OR "GLDDOCHEAD1_"."REFERENC
 
2- Using SQL Profile
--------------------
Plan hash value: 4130975726
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name            | Rows  | Bytes
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                      |                 |     1 |  2066
|*  1 |  TABLE ACCESS BY INDEX ROWID          | GLDDOCHEADER    |     1 |    26
|   2 |   NESTED LOOPS                        |                 |     1 |  2066
|   3 |    NESTED LOOPS                       |                 |     1 |  2040
|   4 |     TABLE ACCESS STORAGE FULL         | MLDTEMP1        |     1 |  2002
|*  5 |     TABLE ACCESS BY GLOBAL INDEX ROWID| GLDDOCLINE      |    90 |  3420
|*  6 |      INDEX RANGE SCAN                 | GLDDOCLINE_ORD1 |    92 |
|*  7 |    INDEX RANGE SCAN                   | GLDDOCHEADER_U  |     1 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter("GLDDOCHEAD1_"."REFERENCEPROC"<>'AUAK' OR "GLDDOCHEAD1_"."REFERENC
   5 - filter("GLDDOCLINE2_"."CLIENT"='800')
   6 - access("MLDTEMP10_"."P1"="GLDDOCLINE2_"."ORDNO")
       filter("GLDDOCLINE2_"."GLACCT2"='14040501' OR "GLDDOCLINE2_"."GLACCT2"='1
              "GLDDOCLINE2_"."GLACCT2"='1601' OR "GLDDOCLINE2_"."GLACCT2"='16040
              "GLDDOCLINE2_"."GLACCT2"='1604020201' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='170199' OR "GLDDOCLINE2_"."GLACCT2"='221
              "GLDDOCLINE2_"."GLACCT2"='50010204' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='50010508' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='50010801' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='500109020302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001090302' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109040102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109040201' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109040302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001090406' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='50010906' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5001090802' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109990302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109990402' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001099908' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109990999' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109991002' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109991004' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001099912' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010101' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010201' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='530101030102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5301010303' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='530101030401' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030403' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030405' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030407' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5301010307' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010310' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010401' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010403' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010502' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010106' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301010704' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010801' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010109' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301011101' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010112' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301011202' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010116' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='530101160102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160105' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160201' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160203' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160205' OR "GLDDOCLINE2_"."GLACCT2
   7 - access("GLDDOCHEAD1_"."DOCNO"="GLDDOCLINE2_"."DOCNO" AND
              "GLDDOCHEAD1_"."POSTPERIOD"="GLDDOCLINE2_"."POSTPERIOD" AND
              "GLDDOCHEAD1_"."FISCALYEAR"="GLDDOCLINE2_"."FISCALYEAR" AND "GLDDO
       filter("GLDDOCHEAD1_"."FISCALYEAR"<'2017' OR "GLDDOCHEAD1_"."FISCALYEAR"=
              "GLDDOCHEAD1_"."POSTPERIOD"<='01')
 
-------------------------------------------------------------------------------
ALTERNATIVE PLANS SECTION
-------------------------------------------------------------------------------
 
Plan 1
------
 
  Plan Origin                 :AWR
  Plan Hash Value             :1394006653
  Executions                  :6
  Elapsed Time                :51.937 sec
  CPU Time                    :25.452 sec
  Buffer Gets                 :11172842
  Disk Reads                  :11307232
  Disk Writes                 :135253
 
Notes:
  1. Statistics shown are averaged over multiple executions.
 
--------------------------------------------------------------------------------
| Id  | Operation                     | Name         | Rows  | Bytes |TempSpc| C
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |              |   371K|   732M|       |
|*  1 |  HASH JOIN                    |              |   371K|   732M|    15M|
|   2 |   TABLE ACCESS STORAGE FULL   | MLDTEMP1     |  8168 |    15M|       |
|*  3 |   HASH JOIN                   |              |    19M|  1177M|   381M|
|   4 |    PART JOIN FILTER CREATE    | :BF0000      |    10M|   261M|       |
|*  5 |     TABLE ACCESS STORAGE FULL | GLDDOCHEADER |    10M|   261M|       |
|   6 |    PARTITION RANGE JOIN-FILTER|              |    38M|  1383M|       |
|*  7 |     TABLE ACCESS STORAGE FULL | GLDDOCLINE   |    38M|  1383M|       |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - access("MLDTEMP10_"."P1"="GLDDOCLINE2_"."ORDNO")
   3 - access("GLDDOCHEAD1_"."FISCALYEAR"="GLDDOCLINE2_"."FISCALYEAR" AND
              "GLDDOCHEAD1_"."POSTPERIOD"="GLDDOCLINE2_"."POSTPERIOD" AND "GLDDO
              AND "GLDDOCHEAD1_"."DOCNO"="GLDDOCLINE2_"."DOCNO")
   5 - storage(("GLDDOCHEAD1_"."REFERENCEPROC"<>'AUAK' OR "GLDDOCHEAD1_"."REFERE
              ("GLDDOCHEAD1_"."FISCALYEAR"<'2017' OR "GLDDOCHEAD1_"."FISCALYEAR"
              "GLDDOCHEAD1_"."POSTPERIOD"<='01') AND "GLDDOCHEAD1_"."CLIENT"='80
       filter(("GLDDOCHEAD1_"."REFERENCEPROC"<>'AUAK' OR "GLDDOCHEAD1_"."REFEREN
              ("GLDDOCHEAD1_"."FISCALYEAR"<'2017' OR "GLDDOCHEAD1_"."FISCALYEAR"
              "GLDDOCHEAD1_"."POSTPERIOD"<='01') AND "GLDDOCHEAD1_"."CLIENT"='80
   7 - storage(("GLDDOCLINE2_"."GLACCT2"='14040501' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='1601' OR "GLDDOCLINE2_"."GLACCT2"='16040
              "GLDDOCLINE2_"."GLACCT2"='1604020201' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='170199' OR "GLDDOCLINE2_"."GLACCT2"='221
              OR "GLDDOCLINE2_"."GLACCT2"='50010204' OR "GLDDOCLINE2_"."GLACCT2"
              "GLDDOCLINE2_"."GLACCT2"='50010508' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='50010801' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='500109020302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001090302' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109040102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109040201' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109040302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001090406' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='50010906' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5001090802' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109990302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109990402' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001099908' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109990999' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109991002' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109991004' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001099912' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010101' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010201' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='530101030102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5301010303' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='530101030401' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030403' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030405' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030407' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5301010307' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010310' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010401' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010403' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010502' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010106' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301010704' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010801' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010109' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301011101' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010112' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301011202' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010116' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='530101160102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160105' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160201' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160203' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160205' OR "GLDDOCLINE2_"."GLACCT2
       filter(("GLDDOCLINE2_"."GLACCT2"='14040501' OR "GLDDOCLINE2_"."GLACCT2"='
              "GLDDOCLINE2_"."GLACCT2"='1601' OR "GLDDOCLINE2_"."GLACCT2"='16040
              "GLDDOCLINE2_"."GLACCT2"='1604020201' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='170199' OR "GLDDOCLINE2_"."GLACCT2"='221
              OR "GLDDOCLINE2_"."GLACCT2"='50010204' OR "GLDDOCLINE2_"."GLACCT2"
              "GLDDOCLINE2_"."GLACCT2"='50010508' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='50010801' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='500109020302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001090302' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109040102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109040201' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109040302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001090406' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='50010906' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5001090802' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109990302' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109990402' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001099908' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='500109990999' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109991002' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='500109991004' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5001099912' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010101' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010201' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='530101030102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5301010303' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='530101030401' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030403' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030405' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101030407' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='5301010307' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010310' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010401' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010403' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010502' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010106' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301010704' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='5301010801' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010109' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301011101' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010112' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='5301011202' OR "GLDDOCLINE2_"."GLACCT2"=
              "GLDDOCLINE2_"."GLACCT2"='53010116' OR "GLDDOCLINE2_"."GLACCT2"='5
              "GLDDOCLINE2_"."GLACCT2"='530101160102' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160105' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160201' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160203' OR "GLDDOCLINE2_"."GLACCT2
              "GLDDOCLINE2_"."GLACCT2"='530101160205' OR "GLDDOCLINE2_"."GLACCT2
 
-------------------------------------------------------------------------------
Object ID  : 285301
Schema Name: JC800
SQL ID     : 9tfsc9v5fs4d7
SQL Text   : select b.purDocNO,b.purDocLineNO from PURDocHeader a,PURDocItem
             b where a.client=b.client and a.purDocNO=b.purDocNO and
             b.purDocDeletionIndic is null   and a.client='800'  and
             a.vendorNO=:1   and a.validityStartPeriod<:2  and
             a.validityEndPeriod>=:3  and b.mtlNO=:4  and b.plant=:5  and
             b.purDocItemCtg=:6
 
-------------------------------------------------------------------------------
FINDINGS SECTION (1 finding)
-------------------------------------------------------------------------------
 
1- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 96.27%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010005 on JC800.PURDOCHEADER("VENDORNO","CLIENT"
    ,"VALIDITYENDPERIOD");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010006 on JC800.PURDOCITEM("PLANT","MTLNO","PURD
    OCDELETIONINDIC","PURDOCITEMCTG","CLIENT","PURDOCNO","PURDOCLINENO");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original
-----------
Plan hash value: 2166617203
 
--------------------------------------------------------------------------------
| Id  | Operation                     | Name           | Rows  | Bytes | Cost (%
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |                |     1 |    63 |   188
|   1 |  NESTED LOOPS                 |                |       |       |
|   2 |   NESTED LOOPS                |                |     1 |    63 |   188
|*  3 |    TABLE ACCESS BY INDEX ROWID| PURDOCITEM     |    65 |  2535 |    58
|*  4 |     INDEX RANGE SCAN          | PURDOCITEM_I   |    65 |       |     3
|*  5 |    INDEX UNIQUE SCAN          | PURDOCHEADER_U |     1 |       |     1
|*  6 |   TABLE ACCESS BY INDEX ROWID | PURDOCHEADER   |     1 |    24 |     2
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - filter("B"."PURDOCDELETIONINDIC" IS NULL AND "B"."PURDOCITEMCTG"=:6)
   4 - access("B"."MTLNO"=:4 AND "B"."PLANT"=:5 AND "B"."CLIENT"='800')
   5 - access("A"."PURDOCNO"="B"."PURDOCNO" AND "A"."CLIENT"='800')
   6 - filter("A"."VENDORNO"=:1 AND "A"."VALIDITYENDPERIOD">=:3 AND
              "A"."VALIDITYSTARTPERIOD"<:2)
 
2- Using New Indices
--------------------
Plan hash value: 431174003
 
--------------------------------------------------------------------------------
| Id  | Operation                    | Name           | Rows  | Bytes | Cost (%C
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |                |     1 |    63 |     7
|   1 |  NESTED LOOPS                |                |     1 |    63 |     7
|*  2 |   TABLE ACCESS BY INDEX ROWID| PURDOCHEADER   |     1 |    24 |     4
|*  3 |    INDEX RANGE SCAN          | IDX$$_00010005 |     1 |       |     3
|*  4 |   INDEX RANGE SCAN           | IDX$$_00010006 |     1 |    39 |     3
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter("A"."VALIDITYSTARTPERIOD"<:2)
   3 - access("A"."VENDORNO"=:1 AND "A"."CLIENT"='800' AND "A"."VALIDITYENDPERIO
              AND "A"."VALIDITYENDPERIOD" IS NOT NULL)
   4 - access("B"."PLANT"=:5 AND "B"."MTLNO"=:4 AND "B"."PURDOCDELETIONINDIC" IS
              AND "B"."PURDOCITEMCTG"=:6 AND "B"."CLIENT"='800' AND "A"."PURDOCN
       filter("B"."PURDOCITEMCTG"=:6 AND "B"."CLIENT"='800' AND
              "A"."PURDOCNO"="B"."PURDOCNO")
 
-------------------------------------------------------------------------------
Object ID  : 285342
Schema Name: REPDBNEW
SQL ID     : 9r7ta5r2dvfty
SQL Text   : UPDATE REP_ZJGC A SET A.OPENBAL = NVL (A.OPENBAL, 0) + NVL (
             (SELECT OPENBAL FROM FXA_ZJGC_TEMP3 WHERE ORDERNO = A.ORDERNO
             AND COMPANYCODE = A.COMPANYCODE AND CLIENT = A.CLIENT AND
             YEARFLAG = 'l'), 0 ), A.EXPCURRYEAR = NVL (A.EXPCURRYEAR, 0) +
             NVL ( (SELECT OPENBAL FROM FXA_ZJGC_TEMP3 WHERE ORDERNO =
             A.ORDERNO AND COMPANYCODE = A.COMPANYCODE AND CLIENT = A.CLIENT
             AND YEARFLAG = 'c'), 0 ), A.EXPSUM = NVL (A.EXPSUM, 0) + NVL (
             (SELECT SUM (OPENBAL) FROM FXA_ZJGC_TEMP3 WHERE ORDERNO =
             A.ORDERNO AND COMPANYCODE = A.COMPANYCODE AND CLIENT = A.CLIENT
             AND YEARFLAG IN ('c', 's')), 0 ), A.NONPAYMENT = NVL
             (A.NONPAYMENT, 0) + NVL ( ( SELECT SUM (NETVALUE) FROM
             FXA_ZJGC_TEMP10 WHERE CLIENT = A.CLIENT AND ORDNO = A.ORDERNO
             GROUP BY ORDNO, CLIENT), 0), A.APPDATE = (SELECT APPDATE FROM
             FXA_ZJGC_TEMP10 WHERE CLIENT = A.CLIENT AND ORDNO = A.ORDERNO),
             A.PREPAYOFFACILITY = NVL ( (SELECT SUM (PREPAYOFFACILITY) FROM
             FXA_ZJGC_TEMP14 B, PURDOCHEADER C, IOARELATBETWOCATDT D WHERE
             B.CLIENT = A.CLIENT AND B.COMPANYCODE = A.COMPANYCODE AND
             B.ORDNO = A.ORDERNO AND A.CLIENT = C.CLIENT AND A.CLIENT =
             D.CLIENT AND A.COMPANYCODE = C.COMPANYCODE AND B.PURDOCNO =
             C.PURDOCNO AND C.ORDTYPE = D.ORDTYPE AND D.PURCHORDERCATETYPE =
             '02'), 0 ) WHERE A.FISCALYEAR = :B3 AND A.POSTPERIOD = :B2 AND
             A.COMPANYCODE = :B1
 
-------------------------------------------------------------------------------
FINDINGS SECTION (1 finding)
-------------------------------------------------------------------------------
 
1- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 84.95%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index REPDBNEW.IDX$$_00010013 on
    REPDBNEW.FXA_ZJGC_TEMP3("ORDERNO","YEARFLAG","CLIENT","COMPANYCODE");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index REPDBNEW.IDX$$_00010014 on
    REPDBNEW.FXA_ZJGC_TEMP10("ORDNO","CLIENT");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index REPDBNEW.IDX$$_00010016 on
    REPDBNEW.FXA_ZJGC_TEMP14("CLIENT","ORDNO","COMPANYCODE","PURDOCNO");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010017 on JC800.PURDOCHEADER("CLIENT","COMPANYCO
    DE","PURDOCNO","ORDTYPE");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original
-----------
Plan hash value: 2791570358
 
--------------------------------------------------------------------------------
| Id  | Operation                             | Name                 | Rows  | B
--------------------------------------------------------------------------------
|   0 | UPDATE STATEMENT                      |                      | 23251 |
|   1 |  UPDATE                               | REP_ZJGC             |       |
|*  2 |   TABLE ACCESS STORAGE FULL           | REP_ZJGC             | 23251 |
|*  3 |   TABLE ACCESS STORAGE FULL FIRST ROWS| FXA_ZJGC_TEMP3       |     1 |
|*  4 |   TABLE ACCESS STORAGE FULL FIRST ROWS| FXA_ZJGC_TEMP3       |     1 |
|   5 |   SORT AGGREGATE                      |                      |     1 |
|*  6 |    TABLE ACCESS STORAGE FULL          | FXA_ZJGC_TEMP3       |     1 |
|   7 |   SORT GROUP BY NOSORT                |                      |     1 |
|*  8 |    TABLE ACCESS STORAGE FULL          | FXA_ZJGC_TEMP10      |     1 |
|*  9 |   TABLE ACCESS STORAGE FULL FIRST ROWS| FXA_ZJGC_TEMP10      |     1 |
|  10 |   SORT AGGREGATE                      |                      |     1 |
|  11 |    NESTED LOOPS                       |                      |     1 |
|  12 |     NESTED LOOPS                      |                      |     1 |
|* 13 |      TABLE ACCESS STORAGE FULL        | FXA_ZJGC_TEMP14      |     1 |
|* 14 |      TABLE ACCESS BY INDEX ROWID      | PURDOCHEADER         |     1 |
|* 15 |       INDEX UNIQUE SCAN               | PURDOCHEADER_U       |     1 |
|* 16 |     INDEX UNIQUE SCAN                 | IOARELATBETWOCATDT_U |     1 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - storage("A"."FISCALYEAR"=:B3 AND "A"."POSTPERIOD"=:B2 AND "A"."COMPANYCOD
       filter("A"."FISCALYEAR"=:B3 AND "A"."POSTPERIOD"=:B2 AND "A"."COMPANYCODE
   3 - filter("ORDERNO"=:B1 AND "YEARFLAG"='l' AND "COMPANYCODE"=:B2 AND "CLIENT
   4 - filter("ORDERNO"=:B1 AND "YEARFLAG"='c' AND "COMPANYCODE"=:B2 AND "CLIENT
   6 - filter("ORDERNO"=:B1 AND ("YEARFLAG"='c' OR "YEARFLAG"='s') AND "COMPANYC
              "CLIENT"=:B3)
   8 - filter("ORDNO"=:B1 AND "CLIENT"=:B2)
   9 - filter("ORDNO"=:B1 AND "CLIENT"=:B2)
  13 - filter("B"."ORDNO"=:B1 AND "B"."PURDOCNO" IS NOT NULL AND "B"."CLIENT"=:B
              "B"."COMPANYCODE"=:B3)
  14 - filter("C"."COMPANYCODE"=:B1)
  15 - access("B"."PURDOCNO"="C"."PURDOCNO" AND "C"."CLIENT"=:B1)
  16 - access("D"."PURCHORDERCATETYPE"='02' AND "C"."ORDTYPE"="D"."ORDTYPE" AND
       filter("D"."ORDTYPE" IS NOT NULL)
 
2- Using New Indices
--------------------
Plan hash value: 2211971372
 
--------------------------------------------------------------------------------
| Id  | Operation                       | Name                 | Rows  | Bytes |
--------------------------------------------------------------------------------
|   0 | UPDATE STATEMENT                |                      | 23251 |  3474K|
|   1 |  UPDATE                         | REP_ZJGC             |       |       |
|*  2 |   TABLE ACCESS STORAGE FULL     | REP_ZJGC             | 23251 |  3474K|
|*  3 |   TABLE ACCESS BY INDEX ROWID   | FXA_ZJGC_TEMP3       |     1 |    27 |
|*  4 |    INDEX RANGE SCAN             | IDX$$_00010012       |     1 |       |
|*  5 |   TABLE ACCESS BY INDEX ROWID   | FXA_ZJGC_TEMP3       |     1 |    27 |
|*  6 |    INDEX RANGE SCAN             | IDX$$_00010012       |     1 |       |
|   7 |   SORT AGGREGATE                |                      |     1 |    27 |
|   8 |    INLIST ITERATOR              |                      |       |       |
|   9 |     TABLE ACCESS BY INDEX ROWID | FXA_ZJGC_TEMP3       |     1 |    27 |
|* 10 |      INDEX RANGE SCAN           | IDX$$_00010013       |     1 |       |
|  11 |   SORT GROUP BY NOSORT          |                      |     1 |    22 |
|  12 |    TABLE ACCESS BY INDEX ROWID  | FXA_ZJGC_TEMP10      |     1 |    22 |
|* 13 |     INDEX RANGE SCAN            | IDX$$_00010014       |     1 |       |
|* 14 |   TABLE ACCESS BY INDEX ROWID   | FXA_ZJGC_TEMP10      |     1 |    25 |
|* 15 |    INDEX RANGE SCAN             | IDX$$_00010015       |     1 |       |
|  16 |   SORT AGGREGATE                |                      |     1 |    68 |
|  17 |    NESTED LOOPS                 |                      |     1 |    68 |
|  18 |     NESTED LOOPS                |                      |     1 |    59 |
|  19 |      TABLE ACCESS BY INDEX ROWID| FXA_ZJGC_TEMP14      |     1 |    38 |
|* 20 |       INDEX RANGE SCAN          | IDX$$_00010016       |     1 |       |
|* 21 |      INDEX RANGE SCAN           | IDX$$_00010017       |     1 |    21 |
|* 22 |     INDEX UNIQUE SCAN           | IOARELATBETWOCATDT_U |     1 |     9 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - storage("A"."FISCALYEAR"=:B3 AND "A"."POSTPERIOD"=:B2 AND "A"."COMPANYCOD
       filter("A"."FISCALYEAR"=:B3 AND "A"."POSTPERIOD"=:B2 AND "A"."COMPANYCODE
   3 - filter("COMPANYCODE"=:B1 AND "CLIENT"=:B2)
   4 - access("ORDERNO"=:B1 AND "YEARFLAG"='l')
   5 - filter("COMPANYCODE"=:B1 AND "CLIENT"=:B2)
   6 - access("ORDERNO"=:B1 AND "YEARFLAG"='c')
  10 - access("ORDERNO"=:B1 AND ("YEARFLAG"='c' OR "YEARFLAG"='s') AND "CLIENT"=
              "COMPANYCODE"=:B3)
  13 - access("ORDNO"=:B1 AND "CLIENT"=:B2)
  14 - filter("CLIENT"=:B1)
  15 - access("ORDNO"=:B1)
  20 - access("B"."CLIENT"=:B1 AND "B"."ORDNO"=:B2 AND "B"."COMPANYCODE"=:B3)
       filter("B"."PURDOCNO" IS NOT NULL)
  21 - access("C"."CLIENT"=:B1 AND "C"."COMPANYCODE"=:B2 AND "B"."PURDOCNO"="C".
  22 - access("D"."PURCHORDERCATETYPE"='02' AND "C"."ORDTYPE"="D"."ORDTYPE" AND
              "D"."CLIENT"=:B1)
       filter("D"."ORDTYPE" IS NOT NULL)
 
-------------------------------------------------------------------------------
Object ID  : 285266
Schema Name: JC800
SQL ID     : 2jz5hasg203rw
SQL Text   : select apmgogetpo2_.APMGoGetPointsID as APMGoGet1_,
             apmgogetpo2_.pasBefPortShow as pasBefPo2_, apmgogetpo2_.yieldly
             as yieldly, apmgogetpo2_.pasAftPortShow as pasAftPo4_,
             apmgogetpo2_.productLine as productL5_,
             apmgogetpo2_.showOutTimID as showOutT6_,
             apmgogetpo2_.collectionAddress as collecti7_,
             apmgogetpo2_.passTimName as passTimN8_,
             apmgogetpo2_.pasBefWorkShow as pasBefWo9_, apmgogetpo2_.seqNO as
             seqNO, apmgogetpo2_.pasAftWorkShow as pasAftW11_,
             apmgogetpo2_.pasTimWorkShow as pasTimW12_, apmgogetpo2_.client
             as client, apmgogetpo2_.pasTimPortShow as pasTimP14_,
             apmgogetpo2_.plant as plant, remplantyp4_.structureTypeNam as
             x0_0_, apmactuals0_.CpMaterialNO as x1_0_, mmrgenmtlt6_.mtlDes
             as x2_0_, mmrplantmt7_.configuralbeMtl as x3_0_,
             apmactuals0_.fatherMateSeqNO as x4_0_, apmactuals1_.scanTime as
             x5_0_, apmgogetpo2_.APMGoGetPointsID as x6_0_,
             apmactuals0_.planSeqNO as x7_0_, apmactuals1_.scanDate as x8_0_,
             apmactuals0_.productType as x9_0_ from APMActualSeqDataHeader
             apmactuals0_, APMActualSeqDataItem apmactuals1_, APMGoGetPoints
             apmgogetpo2_, BDMWorkCenterHeader bdmworkcen3_, REMPlanTyp
             remplantyp4_, MMRGenMtl mmrgenmtl5_, MMRGenMtlTrl mmrgenmtlt6_,
             MMRPlantMtl mmrplantmt7_ where (apmactuals0_.client=apmactuals1_.
             client )and(apmactuals0_.actualSeqNO=apmactuals1_.actualSeqNO
             )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(apmactuals0_.client=apmgogetpo2_.client
             )and(bdmworkcen3_.workCenter=apmgogetpo2_.collectionAddress
             )and(bdmworkcen3_.plant=apmgogetpo2_.plant
             )and(apmactuals0_.factory=bdmworkcen3_.plant
             )and(apmactuals0_.client=bdmworkcen3_.client
             )and(bdmworkcen3_.objectID=apmactuals1_.scanPoint
             )and(apmactuals0_.styleID=remplantyp4_.structureType(+))and(apmac
             tuals0_.client=remplantyp4_.client(+))and(apmactuals0_.CpMaterial
             NO=mmrgenmtl5_.mtlNO(+))and(mmrgenmtl5_.MMRGenMtlID=mmrgenmtlt6_.
             MMRGenMtlID(+))and(apmactuals0_.client=mmrgenmtl5_.client(+))and(
             apmactuals0_.CpMaterialNO=mmrplantmt7_.mtlNO(+))and(apmactuals0_.
             client=mmrplantmt7_.client(+))and(apmactuals0_.factory=mmrplantmt
             7_.plant(+))and(apmactuals0_.client='800'
             )and(mmrgenmtlt6_.language='zh_CN'
             )and(apmactuals0_.factory='001' )and(to_char(apmactuals1_.scanDat
             e , 'yyyy-MM-dd')>='2017-01-05' )and(apmgogetpo2_.yieldly='P2'
             )and(nvl(apmactuals0_.purOrgBlock , 'N')='N'
             )and(apmactuals0_.fatherMateSeqNO is not null ) order by
             apmactuals1_.scanTime desc , SUBSTR(apmactuals0_.fatherMateSeqNO
             , length(apmactuals0_.fatherMateSeqNO)-4)desc
 
-------------------------------------------------------------------------------
FINDINGS SECTION (4 findings)
-------------------------------------------------------------------------------
 
1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划。
  SQL profile 未自动创建, 因为经验证可获得的收益太少。
 
  Recommendation (estimated benefit: 28.81%)
  ------------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285266, task_owner =>
            'SYS', replace => TRUE);
 
  Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。
 
                           Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time (s):            1.500657          1.156117      22.95 %
  CPU Time (s):                1.497771          1.146825      23.43 %
  User I/O Time (s):                  0                 0
  Buffer Gets:                   362807            258250      28.81 %
  Physical Read Requests:             0                 0
  Physical Write Requests:            0                 0
  Physical Read Bytes:                0                 0
  Physical Write Bytes:               0                 0
  Rows Processed:                 28391             28391
  Fetches:                        28391             28391
  Executions:                         1                 1
 
2- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 76.11%)
  ------------------------------------------
  - 考虑运行访问指导以改进物理方案设计或者创建推荐的索引。如果选择创建推荐的索引, 请考虑删除索引
    "JC800"."BDMWORKCENTERHEADER_WKC", 因为它是推荐的索引的前缀。
    create index JC800.IDX$$_00010001 on JC800.BDMWORKCENTERHEADER("WORKCENTER"
    ,"PLANT");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010002 on JC800.APMACTUALSEQDATAITEM(TO_CHAR("SC
    ANDATE",'yyyy-MM-dd'));
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
3- Restructure SQL finding (see plan 1 in explain plans section)
----------------------------------------------------------------
  谓词 TO_CHAR("APMACTUALS1_"."SCANDATE",'yyyy-MM-dd')>='2017-01-05' (在执行计划的行 ID
  13 处使用) 包含索引列 "SCANDATE" 的表达式。此表达式使优化程序无法选择表 "JC800"."APMACTUALSEQDATAITEM"
  的索引。
 
  Recommendation
  --------------
  - 将谓词重写为等价型以便使用索引。或者, 对此表达式创建基于函数的索引。
 
4- Alternative Plan Finding
---------------------------
  通过搜索系统的实时和历史性能数据找到了此语句的某些替代执行计划。
 
  The following table lists these plans ranked by their average elapsed time.
  See section "ALTERNATIVE PLANS SECTION" for detailed information on each
  plan.
 
  id plan hash  last seen            elapsed (s)  origin          note
  -- ---------- -------------------- ------------ --------------- --------------
   1 4104233932  2017-02-15/00:00:14        1.617 Cursor Cache    original plan
   2 3793614319  2017-02-15/00:02:14        1.680 Cursor Cache
 
  Information
  -----------
  - 根据每次执行的用时, 原始计划可能具有最佳性能。但是, 如果您知道某个替代计划优于原始计划, 可以为该替代计划创建 SQL 计划基线。这将指示
    Oracle 优化程序在将来优先于任何其他选择来选取它。
    execute dbms_sqltune.create_sql_plan_baseline(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285266, owner_name =>
            'SYS', plan_hash_value => xxxxxxxx);
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original With Adjusted Cost
------------------------------
Plan hash value: 4104233932
 
--------------------------------------------------------------------------------
| Id  | Operation                           | Name                     | Rows  |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                    |                          | 11684 |
|   1 |  SORT ORDER BY                      |                          | 11684 |
|*  2 |   HASH JOIN                         |                          | 11684 |
|*  3 |    HASH JOIN                        |                          | 11684 |
|*  4 |     HASH JOIN OUTER                 |                          | 11685 |
|   5 |      NESTED LOOPS OUTER             |                          | 11685 |
|   6 |       NESTED LOOPS                  |                          | 11685 |
|   7 |        NESTED LOOPS                 |                          |  5076 |
|   8 |         NESTED LOOPS                |                          |     3 |
|   9 |          TABLE ACCESS BY INDEX ROWID| APMGOGETPOINTS           |     3 |
|* 10 |           INDEX RANGE SCAN          | APMGOGETPOINTS_U         |     3 |
|* 11 |          TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1 |
|* 12 |           INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1 |
|* 13 |         INDEX RANGE SCAN            | APMACTUALSEQDATAITEM_T   |  1689 |
|* 14 |        TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     2 |
|* 15 |         INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1 |
|  16 |       TABLE ACCESS BY INDEX ROWID   | REMPLANTYP               |     1 |
|* 17 |        INDEX UNIQUE SCAN            | REMPLANTYP_U             |     1 |
|* 18 |      TABLE ACCESS STORAGE FULL      | MMRPLANTMTL              |   179K|
|  19 |     VIEW                            | index$_join$_006         |   206K|
|* 20 |      HASH JOIN                      |                          |       |
|  21 |       INDEX STORAGE FAST FULL SCAN  | SYS_C0043755             |   206K|
|* 22 |       INDEX STORAGE FAST FULL SCAN  | MMRGENMTL_T              |   206K|
|* 23 |    TABLE ACCESS STORAGE FULL        | MMRGENMTLTRL             |   203K|
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("MMRGENMTL5_"."MMRGENMTLID"="MMRGENMTLT6_"."MMRGENMTLID")
   3 - access("APMACTUALS0_"."CPMATERIALNO"="MMRGENMTL5_"."MTLNO" AND
              "APMACTUALS0_"."CLIENT"="MMRGENMTL5_"."CLIENT")
   4 - access("APMACTUALS0_"."CPMATERIALNO"="MMRPLANTMT7_"."MTLNO"(+) AND
              "APMACTUALS0_"."CLIENT"="MMRPLANTMT7_"."CLIENT"(+) AND "APMACTUALS
  10 - access("APMGOGETPO2_"."CLIENT"='800' AND "APMGOGETPO2_"."PLANT"='001' AND
  11 - filter("BDMWORKCEN3_"."PLANT"='001' AND "BDMWORKCEN3_"."CLIENT"='800')
  12 - access("BDMWORKCEN3_"."WORKCENTER"="APMGOGETPO2_"."COLLECTIONADDRESS")
  13 - access("BDMWORKCEN3_"."OBJECTID"="APMACTUALS1_"."SCANPOINT" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANDATE"),'yyyy-MM-dd')
              "APMACTUALS1_"."CLIENT"='800')
  14 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  15 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - access("REMPLANTYP4_"."CLIENT"(+)='800' AND "APMACTUALS0_"."STYLEID"="REM
  18 - storage("MMRPLANTMT7_"."PLANT"(+)='001' AND "MMRPLANTMT7_"."CLIENT"(+)='8
       filter("MMRPLANTMT7_"."PLANT"(+)='001' AND "MMRPLANTMT7_"."CLIENT"(+)='80
  20 - access(ROWID=ROWID)
  22 - storage("MMRGENMTL5_"."CLIENT"='800')
       filter("MMRGENMTL5_"."CLIENT"='800')
  23 - storage("MMRGENMTLT6_"."LANGUAGE"='zh_CN')
       filter("MMRGENMTLT6_"."LANGUAGE"='zh_CN')
 
2- Using SQL Profile
--------------------
Plan hash value: 3592701390
 
--------------------------------------------------------------------------------
| Id  | Operation                           | Name                     | Rows  |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                    |                          |   181 |
|   1 |  SORT ORDER BY                      |                          |   181 |
|*  2 |   HASH JOIN                         |                          |   181 |
|   3 |    NESTED LOOPS OUTER               |                          |   181 |
|   4 |     NESTED LOOPS                    |                          |   181 |
|   5 |      NESTED LOOPS OUTER             |                          |   181 |
|   6 |       NESTED LOOPS                  |                          |   181 |
|   7 |        NESTED LOOPS                 |                          |   539 |
|   8 |         NESTED LOOPS                |                          |     1 |
|   9 |          TABLE ACCESS BY INDEX ROWID| APMGOGETPOINTS           |     1 |
|* 10 |           INDEX RANGE SCAN          | APMGOGETPOINTS_U         |     1 |
|* 11 |          TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1 |
|* 12 |           INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1 |
|* 13 |         INDEX RANGE SCAN            | APMACTUALSEQDATAITEM_T   |   469 |
|* 14 |        TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1 |
|* 15 |         INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1 |
|  16 |       TABLE ACCESS BY INDEX ROWID   | REMPLANTYP               |     1 |
|* 17 |        INDEX UNIQUE SCAN            | REMPLANTYP_U             |     1 |
|  18 |      TABLE ACCESS BY INDEX ROWID    | MMRGENMTL                |     1 |
|* 19 |       INDEX UNIQUE SCAN             | MMRGENMTL_U              |     1 |
|  20 |     TABLE ACCESS BY INDEX ROWID     | MMRPLANTMTL              |     1 |
|* 21 |      INDEX UNIQUE SCAN              | MMRPLANTMTL_U            |     1 |
|* 22 |    TABLE ACCESS STORAGE FULL        | MMRGENMTLTRL             |   203K|
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("MMRGENMTL5_"."MMRGENMTLID"="MMRGENMTLT6_"."MMRGENMTLID")
  10 - access("APMGOGETPO2_"."CLIENT"='800' AND "APMGOGETPO2_"."PLANT"='001' AND
              "APMGOGETPO2_"."YIELDLY"='P2')
  11 - filter("BDMWORKCEN3_"."PLANT"='001' AND "BDMWORKCEN3_"."CLIENT"='800')
  12 - access("BDMWORKCEN3_"."WORKCENTER"="APMGOGETPO2_"."COLLECTIONADDRESS")
  13 - access("BDMWORKCEN3_"."OBJECTID"="APMACTUALS1_"."SCANPOINT" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANDATE"),'yyyy-MM-dd')
              "APMACTUALS1_"."CLIENT"='800')
  14 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  15 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - access("REMPLANTYP4_"."CLIENT"(+)='800' AND "APMACTUALS0_"."STYLEID"="REM
              E"(+))
  19 - access("APMACTUALS0_"."CPMATERIALNO"="MMRGENMTL5_"."MTLNO" AND "MMRGENMTL
  21 - access("APMACTUALS0_"."CPMATERIALNO"="MMRPLANTMT7_"."MTLNO"(+) AND
              "MMRPLANTMT7_"."PLANT"(+)='001' AND "MMRPLANTMT7_"."CLIENT"(+)='80
  22 - storage("MMRGENMTLT6_"."LANGUAGE"='zh_CN')
       filter("MMRGENMTLT6_"."LANGUAGE"='zh_CN')
 
3- Using New Indices
--------------------
Plan hash value: 2315716752
 
--------------------------------------------------------------------------------
| Id  | Operation                               | Name                     | Row
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                        |                          |
|   1 |  SORT ORDER BY                          |                          |
|   2 |   NESTED LOOPS OUTER                    |                          |
|   3 |    NESTED LOOPS                         |                          |
|   4 |     NESTED LOOPS                        |                          |
|   5 |      NESTED LOOPS OUTER                 |                          |
|   6 |       NESTED LOOPS                      |                          |
|   7 |        NESTED LOOPS                     |                          |
|   8 |         NESTED LOOPS                    |                          |
|   9 |          TABLE ACCESS BY INDEX ROWID    | APMGOGETPOINTS           |
|* 10 |           INDEX RANGE SCAN              | APMGOGETPOINTS_U         |
|* 11 |          TABLE ACCESS BY INDEX ROWID    | BDMWORKCENTERHEADER      |
|* 12 |           INDEX RANGE SCAN              | IDX$$_00010001           |
|  13 |         TABLE ACCESS BY INDEX ROWID     | APMACTUALSEQDATAITEM     |
|  14 |          BITMAP CONVERSION TO ROWIDS    |                          |
|  15 |           BITMAP AND                    |                          |
|  16 |            BITMAP CONVERSION FROM ROWIDS|                          |
|  17 |             SORT ORDER BY               |                          |
|* 18 |              INDEX RANGE SCAN           | IDX$$_00010002           |   2
|  19 |            BITMAP CONVERSION FROM ROWIDS|                          |
|* 20 |             INDEX RANGE SCAN            | APMACTUALSEQDATAITEM_SP  |   2
|* 21 |        TABLE ACCESS BY INDEX ROWID      | APMACTUALSEQDATAHEADER   |
|* 22 |         INDEX UNIQUE SCAN               | APMACTUALSEQDATAHEADER_U |
|  23 |       TABLE ACCESS BY INDEX ROWID       | REMPLANTYP               |
|* 24 |        INDEX UNIQUE SCAN                | REMPLANTYP_U             |
|  25 |      TABLE ACCESS BY INDEX ROWID        | MMRGENMTL                |
|* 26 |       INDEX UNIQUE SCAN                 | MMRGENMTL_U              |
|* 27 |     INDEX RANGE SCAN                    | MMRGENMTLTRL_0           |
|  28 |    TABLE ACCESS BY INDEX ROWID          | MMRPLANTMTL              |
|* 29 |     INDEX UNIQUE SCAN                   | MMRPLANTMTL_U            |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  10 - access("APMGOGETPO2_"."CLIENT"='800' AND "APMGOGETPO2_"."PLANT"='001' AND
              "APMGOGETPO2_"."YIELDLY"='P2')
  11 - filter("BDMWORKCEN3_"."CLIENT"='800')
  12 - access("BDMWORKCEN3_"."WORKCENTER"="APMGOGETPO2_"."COLLECTIONADDRESS" AND
              "BDMWORKCEN3_"."PLANT"='001')
  18 - access("APMACTUALSEQDATAITEM"."qsmmix_VCol_5001">='2017-01-05')
       filter("APMACTUALSEQDATAITEM"."qsmmix_VCol_5001">='2017-01-05')
  20 - access("BDMWORKCEN3_"."OBJECTID"="APMACTUALS1_"."SCANPOINT" AND "APMACTUA
  21 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  22 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  24 - access("REMPLANTYP4_"."CLIENT"(+)='800' AND "APMACTUALS0_"."STYLEID"="REM
              ))
  26 - access("APMACTUALS0_"."CPMATERIALNO"="MMRGENMTL5_"."MTLNO" AND "MMRGENMTL
  27 - access("MMRGENMTL5_"."MMRGENMTLID"="MMRGENMTLT6_"."MMRGENMTLID" AND
              "MMRGENMTLT6_"."LANGUAGE"='zh_CN')
  29 - access("APMACTUALS0_"."CPMATERIALNO"="MMRPLANTMT7_"."MTLNO"(+) AND "MMRPL
              AND "MMRPLANTMT7_"."CLIENT"(+)='800')
 
-------------------------------------------------------------------------------
ALTERNATIVE PLANS SECTION
-------------------------------------------------------------------------------
 
Plan 2
------
 
  Plan Origin                 :Cursor Cache
  Plan Hash Value             :3793614319
  Executions                  :862
  Elapsed Time                :1.680 sec
  CPU Time                    :1.667 sec
  Buffer Gets                 :361758
  Disk Reads                  :0
  Disk Writes                 :0
 
Notes:
  1. Statistics shown are averaged over multiple executions.
 
--------------------------------------------------------------------------------
| Id  | Operation                            | Name                     | Rows
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                     |                          |  4381
|   1 |  SORT ORDER BY                       |                          |  4381
|   2 |   NESTED LOOPS OUTER                 |                          |  4381
|*  3 |    HASH JOIN                         |                          |  4381
|*  4 |     HASH JOIN                        |                          |  4381
|*  5 |      HASH JOIN OUTER                 |                          |  4381
|   6 |       NESTED LOOPS                   |                          |
|   7 |        NESTED LOOPS                  |                          |  4381
|   8 |         NESTED LOOPS                 |                          |  4381
|   9 |          NESTED LOOPS                |                          |     1
|  10 |           TABLE ACCESS BY INDEX ROWID| APMGOGETPOINTS           |     1
|* 11 |            INDEX RANGE SCAN          | APMGOGETPOINTS_U         |     1
|* 12 |           TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1
|* 13 |            INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1
|* 14 |          INDEX RANGE SCAN            | APMACTUALSEQDATAITEM_T   |  3815
|* 15 |         INDEX UNIQUE SCAN            | APMACTUALSEQDATAHEADER_U |     1
|* 16 |        TABLE ACCESS BY INDEX ROWID   | APMACTUALSEQDATAHEADER   |     1
|* 17 |       TABLE ACCESS STORAGE FULL      | MMRPLANTMTL              |   179K
|  18 |      VIEW                            | index$_join$_006         |   206K
|* 19 |       HASH JOIN                      |                          |
|  20 |        INDEX STORAGE FAST FULL SCAN  | SYS_C0043755             |   206K
|* 21 |        INDEX STORAGE FAST FULL SCAN  | MMRGENMTL_T              |   206K
|* 22 |     TABLE ACCESS STORAGE FULL        | MMRGENMTLTRL             |   203K
|  23 |    TABLE ACCESS BY INDEX ROWID       | REMPLANTYP               |     1
|* 24 |     INDEX UNIQUE SCAN                | REMPLANTYP_U             |     1
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   3 - access("MMRGENMTL5_"."MMRGENMTLID"="MMRGENMTLT6_"."MMRGENMTLID")
   4 - access("APMACTUALS0_"."CPMATERIALNO"="MMRGENMTL5_"."MTLNO" AND
              "APMACTUALS0_"."CLIENT"="MMRGENMTL5_"."CLIENT")
   5 - access("APMACTUALS0_"."CPMATERIALNO"="MMRPLANTMT7_"."MTLNO"(+) AND
              "APMACTUALS0_"."CLIENT"="MMRPLANTMT7_"."CLIENT"(+) AND "APMACTUALS
  11 - access("APMGOGETPO2_"."CLIENT"='800' AND "APMGOGETPO2_"."PLANT"='001' AND
  12 - filter("BDMWORKCEN3_"."PLANT"='001' AND "BDMWORKCEN3_"."CLIENT"='800')
  13 - access("BDMWORKCEN3_"."WORKCENTER"="APMGOGETPO2_"."COLLECTIONADDRESS")
  14 - access("BDMWORKCEN3_"."OBJECTID"="APMACTUALS1_"."SCANPOINT" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANDATE"),'yyyy-MM-dd')
              "APMACTUALS1_"."CLIENT"='800')
  15 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  16 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  17 - storage("MMRPLANTMT7_"."PLANT"(+)='001' AND "MMRPLANTMT7_"."CLIENT"(+)='8
       filter("MMRPLANTMT7_"."PLANT"(+)='001' AND "MMRPLANTMT7_"."CLIENT"(+)='80
  19 - access(ROWID=ROWID)
  21 - storage("MMRGENMTL5_"."CLIENT"='800')
       filter("MMRGENMTL5_"."CLIENT"='800')
  22 - storage("MMRGENMTLT6_"."LANGUAGE"='zh_CN')
       filter("MMRGENMTLT6_"."LANGUAGE"='zh_CN')
  24 - access("REMPLANTYP4_"."CLIENT"(+)='800' AND "APMACTUALS0_"."STYLEID"="REM
 
Plan 1
------
 
  Plan Origin                 :Cursor Cache
  Plan Hash Value             :4104233932
  Executions                  :1
  Elapsed Time                :1.617 sec
  CPU Time                    :1.601 sec
  Buffer Gets                 :360542
  Disk Reads                  :0
  Disk Writes                 :0
 
Notes:
  1. Statistics shown are averaged over multiple executions.
  2. The plan matches the original plan.
 
--------------------------------------------------------------------------------
| Id  | Operation                           | Name                     | Rows  |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                    |                          |  4381 |
|   1 |  SORT ORDER BY                      |                          |  4381 |
|*  2 |   HASH JOIN                         |                          |  4381 |
|*  3 |    HASH JOIN                        |                          |  4381 |
|*  4 |     HASH JOIN OUTER                 |                          |  4381 |
|   5 |      NESTED LOOPS OUTER             |                          |  4381 |
|   6 |       NESTED LOOPS                  |                          |  4381 |
|   7 |        NESTED LOOPS                 |                          |  4381 |
|   8 |         NESTED LOOPS                |                          |     1 |
|   9 |          TABLE ACCESS BY INDEX ROWID| APMGOGETPOINTS           |     1 |
|* 10 |           INDEX RANGE SCAN          | APMGOGETPOINTS_U         |     1 |
|* 11 |          TABLE ACCESS BY INDEX ROWID| BDMWORKCENTERHEADER      |     1 |
|* 12 |           INDEX RANGE SCAN          | BDMWORKCENTERHEADER_WKC  |     1 |
|* 13 |         INDEX RANGE SCAN            | APMACTUALSEQDATAITEM_T   |  3815 |
|* 14 |        TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER   |     1 |
|* 15 |         INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U |     1 |
|  16 |       TABLE ACCESS BY INDEX ROWID   | REMPLANTYP               |     1 |
|* 17 |        INDEX UNIQUE SCAN            | REMPLANTYP_U             |     1 |
|* 18 |      TABLE ACCESS STORAGE FULL      | MMRPLANTMTL              |   179K|
|  19 |     VIEW                            | index$_join$_006         |   206K|
|* 20 |      HASH JOIN                      |                          |       |
|  21 |       INDEX STORAGE FAST FULL SCAN  | SYS_C0043755             |   206K|
|* 22 |       INDEX STORAGE FAST FULL SCAN  | MMRGENMTL_T              |   206K|
|* 23 |    TABLE ACCESS STORAGE FULL        | MMRGENMTLTRL             |   203K|
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - access("MMRGENMTL5_"."MMRGENMTLID"="MMRGENMTLT6_"."MMRGENMTLID")
   3 - access("APMACTUALS0_"."CPMATERIALNO"="MMRGENMTL5_"."MTLNO" AND
              "APMACTUALS0_"."CLIENT"="MMRGENMTL5_"."CLIENT")
   4 - access("APMACTUALS0_"."CPMATERIALNO"="MMRPLANTMT7_"."MTLNO"(+) AND
              "APMACTUALS0_"."CLIENT"="MMRPLANTMT7_"."CLIENT"(+) AND "APMACTUALS
  10 - access("APMGOGETPO2_"."CLIENT"='800' AND "APMGOGETPO2_"."PLANT"='001' AND
  11 - filter("BDMWORKCEN3_"."PLANT"='001' AND "BDMWORKCEN3_"."CLIENT"='800')
  12 - access("BDMWORKCEN3_"."WORKCENTER"="APMGOGETPO2_"."COLLECTIONADDRESS")
  13 - access("BDMWORKCEN3_"."OBJECTID"="APMACTUALS1_"."SCANPOINT" AND "APMACTUA
       filter(TO_CHAR(INTERNAL_FUNCTION("APMACTUALS1_"."SCANDATE"),'yyyy-MM-dd')
              "APMACTUALS1_"."CLIENT"='800')
  14 - filter("APMACTUALS0_"."FATHERMATESEQNO" IS NOT NULL AND "APMACTUALS0_"."F
              NVL("APMACTUALS0_"."PURORGBLOCK",'N')='N')
  15 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  17 - access("REMPLANTYP4_"."CLIENT"(+)='800' AND "APMACTUALS0_"."STYLEID"="REM
  18 - storage("MMRPLANTMT7_"."PLANT"(+)='001' AND "MMRPLANTMT7_"."CLIENT"(+)='8
       filter("MMRPLANTMT7_"."PLANT"(+)='001' AND "MMRPLANTMT7_"."CLIENT"(+)='80
  20 - access(ROWID=ROWID)
  22 - storage("MMRGENMTL5_"."CLIENT"='800')
       filter("MMRGENMTL5_"."CLIENT"='800')
  23 - storage("MMRGENMTLT6_"."LANGUAGE"='zh_CN')
       filter("MMRGENMTLT6_"."LANGUAGE"='zh_CN')
 
-------------------------------------------------------------------------------
Object ID  : 285398
Schema Name: JC800
SQL ID     : 9un6spcxthjbw
SQL Text   : select apmactuals0_.planSeqNO as x0_0_, bdmworkcen2_.workCenter
             as x1_0_ from APMActualSeqDataHeader apmactuals0_,
             APMActualSeqDataItem apmactuals1_, BDMWorkCenterHeader
             bdmworkcen2_ where (apmactuals0_.actualSeqNO=apmactuals1_.actualS
             eqNO )and(apmactuals0_.productLine=apmactuals1_.productLine
             )and(bdmworkcen2_.plant=apmactuals0_.factory
             )and(apmactuals1_.scanPoint=bdmworkcen2_.objectID
             )and(apmactuals1_.scanTime>=to_date('2017-02-14' ,
             'yyyy-mm-dd'))and(apmactuals0_.client='800'
             )and(apmactuals1_.client='800' )and(bdmworkcen2_.client='800' )
             group by  apmactuals0_.productLine , apmactuals0_.actualSeqNO ,
             apmactuals0_.planSeqNO , bdmworkcen2_.workCenter ,
             apmactuals0_.client having (count(1)>1 ) order by
             apmactuals0_.planSeqNO
 
-------------------------------------------------------------------------------
FINDINGS SECTION (2 findings)
-------------------------------------------------------------------------------
 
1- Index Finding (see explain plans section below)
--------------------------------------------------
  通过创建一个或多个索引可以改进此语句的执行计划。
 
  Recommendation (estimated benefit: 68.67%)
  ------------------------------------------
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010042 on JC800.APMACTUALSEQDATAITEM("CLIENT","S
    CANTIME");
 
  - 考虑运行可以改进物理方案设计的访问指导或者创建推荐的索引。
    create index JC800.IDX$$_00010043 on JC800.BDMWORKCENTERHEADER("OBJECTID");
 
  Rationale
  ---------
    创建推荐的索引可以显著地改进此语句的执行计划。但是, 使用典型的 SQL 工作量运行 "访问指导"
    可能比单个语句更可取。通过这种方法可以获得全面的索引建议案, 包括计算索引维护的开销和附加的空间消耗。
 
2- Alternative Plan Finding
---------------------------
  通过搜索系统的实时和历史性能数据找到了此语句的某些替代执行计划。
 
  The following table lists these plans ranked by their average elapsed time.
  See section "ALTERNATIVE PLANS SECTION" for detailed information on each
  plan.
 
  id plan hash  last seen            elapsed (s)  origin          note
  -- ---------- -------------------- ------------ --------------- --------------
   1  360058868  2017-02-15/21:00:26        0.113 AWR             original plan
   2 1841302870  2017-02-15/21:00:26        0.172 AWR
 
  Information
  -----------
  - 根据每次执行的用时, 原始计划可能具有最佳性能。但是, 如果您知道某个替代计划优于原始计划, 可以为该替代计划创建 SQL 计划基线。这将指示
    Oracle 优化程序在将来优先于任何其他选择来选取它。
    execute dbms_sqltune.create_sql_plan_baseline(task_name =>
            'SYS_AUTO_SQL_TUNING_TASK', object_id => 285398, owner_name =>
            'SYS', plan_hash_value => xxxxxxxx);
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original
-----------
Plan hash value: 360058868
 
--------------------------------------------------------------------------------
| Id  | Operation                        | Name                       | Rows  |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                 |                            |     1 |
|*  1 |  FILTER                          |                            |       |
|   2 |   SORT GROUP BY                  |                            |     1 |
|   3 |    NESTED LOOPS                  |                            |       |
|   4 |     NESTED LOOPS                 |                            |     1 |
|*  5 |      HASH JOIN                   |                            |     1 |
|*  6 |       TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM       |     1 |
|*  7 |        INDEX RANGE SCAN          | APMPRODUCETIMESTAMP_SCTIME |     1 |
|*  8 |       TABLE ACCESS STORAGE FULL  | BDMWORKCENTERHEADER        |  2977 |
|*  9 |      INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U   |     1 |
|* 10 |     TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER     |     1 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter(COUNT(*)>1)
   5 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN2_"."OBJECTID")
   6 - filter("APMACTUALS1_"."CLIENT"='800')
   7 - access("APMACTUALS1_"."SCANTIME">=TO_DATE(' 2017-02-14 00:00:00', 'syyyy-
   8 - storage("BDMWORKCEN2_"."CLIENT"='800')
       filter("BDMWORKCEN2_"."CLIENT"='800')
   9 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  10 - filter("BDMWORKCEN2_"."PLANT"="APMACTUALS0_"."FACTORY")
 
2- Using New Indices
--------------------
Plan hash value: 3171338220
 
--------------------------------------------------------------------------------
| Id  | Operation                        | Name                     | Rows  | By
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                 |                          |     1 |
|*  1 |  FILTER                          |                          |       |
|   2 |   SORT GROUP BY                  |                          |     1 |
|   3 |    NESTED LOOPS                  |                          |       |
|   4 |     NESTED LOOPS                 |                          |     1 |
|   5 |      NESTED LOOPS                |                          |     1 |
|   6 |       TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM     |     1 |
|*  7 |        INDEX RANGE SCAN          | IDX$$_00010042           |     1 |
|   8 |       TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAHEADER   |     1 |
|*  9 |        INDEX UNIQUE SCAN         | APMACTUALSEQDATAHEADER_U |     1 |
|* 10 |      INDEX RANGE SCAN            | IDX$$_00010043           |     1 |
|* 11 |     TABLE ACCESS BY INDEX ROWID  | BDMWORKCENTERHEADER      |     1 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter(COUNT(*)>1)
   7 - access("APMACTUALS1_"."CLIENT"='800' AND "APMACTUALS1_"."SCANTIME">=TO_DA
              00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "APMACTUALS1_"."SCANTIME"
   9 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  10 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN2_"."OBJECTID")
  11 - filter("BDMWORKCEN2_"."CLIENT"='800' AND "BDMWORKCEN2_"."PLANT"="APMACTUA
 
-------------------------------------------------------------------------------
ALTERNATIVE PLANS SECTION
-------------------------------------------------------------------------------
 
Plan 2
------
 
  Plan Origin                 :AWR
  Plan Hash Value             :1841302870
  Executions                  :717
  Elapsed Time                :0.172 sec
  CPU Time                    :0.125 sec
  Buffer Gets                 :48257
  Disk Reads                  :59
  Disk Writes                 :0
 
Notes:
  1. Statistics shown are averaged over multiple executions.
 
--------------------------------------------------------------------------------
| Id  | Operation                        | Name                       | Rows  |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                 |                            |     1 |
|*  1 |  FILTER                          |                            |       |
|   2 |   SORT GROUP BY                  |                            |     1 |
|   3 |    NESTED LOOPS                  |                            |       |
|   4 |     NESTED LOOPS                 |                            |     1 |
|*  5 |      HASH JOIN                   |                            |     1 |
|*  6 |       TABLE ACCESS STORAGE FULL  | BDMWORKCENTERHEADER        |  2977 |
|*  7 |       TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM       |     1 |
|*  8 |        INDEX RANGE SCAN          | APMPRODUCETIMESTAMP_SCTIME |     1 |
|*  9 |      INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U   |     1 |
|* 10 |     TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER     |     1 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter(COUNT(*)>1)
   5 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN2_"."OBJECTID")
   6 - storage("BDMWORKCEN2_"."CLIENT"='800')
       filter("BDMWORKCEN2_"."CLIENT"='800')
   7 - filter("APMACTUALS1_"."CLIENT"='800')
   8 - access("APMACTUALS1_"."SCANTIME">=TO_DATE(' 2017-02-14 00:00:00', 'syyyy-
   9 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  10 - filter("BDMWORKCEN2_"."PLANT"="APMACTUALS0_"."FACTORY")
 
Plan 1
------
 
  Plan Origin                 :AWR
  Plan Hash Value             :360058868
  Executions                  :3
  Elapsed Time                :0.113 sec
  CPU Time                    :0.084 sec
  Buffer Gets                 :23502
  Disk Reads                  :0
  Disk Writes                 :0
 
Notes:
  1. Statistics shown are averaged over multiple executions.
  2. The plan matches the original plan.
 
--------------------------------------------------------------------------------
| Id  | Operation                        | Name                       | Rows  |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                 |                            |     1 |
|*  1 |  FILTER                          |                            |       |
|   2 |   SORT GROUP BY                  |                            |     1 |
|   3 |    NESTED LOOPS                  |                            |       |
|   4 |     NESTED LOOPS                 |                            |     1 |
|*  5 |      HASH JOIN                   |                            |     1 |
|*  6 |       TABLE ACCESS BY INDEX ROWID| APMACTUALSEQDATAITEM       |     1 |
|*  7 |        INDEX RANGE SCAN          | APMPRODUCETIMESTAMP_SCTIME |     1 |
|*  8 |       TABLE ACCESS STORAGE FULL  | BDMWORKCENTERHEADER        |  2977 |
|*  9 |      INDEX UNIQUE SCAN           | APMACTUALSEQDATAHEADER_U   |     1 |
|* 10 |     TABLE ACCESS BY INDEX ROWID  | APMACTUALSEQDATAHEADER     |     1 |
--------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   1 - filter(COUNT(*)>1)
   5 - access("APMACTUALS1_"."SCANPOINT"="BDMWORKCEN2_"."OBJECTID")
   6 - filter("APMACTUALS1_"."CLIENT"='800')
   7 - access("APMACTUALS1_"."SCANTIME">=TO_DATE(' 2017-02-14 00:00:00', 'syyyy-
   8 - storage("BDMWORKCEN2_"."CLIENT"='800')
       filter("BDMWORKCEN2_"."CLIENT"='800')
   9 - access("APMACTUALS0_"."ACTUALSEQNO"="APMACTUALS1_"."ACTUALSEQNO" AND
              "APMACTUALS0_"."PRODUCTLINE"="APMACTUALS1_"."PRODUCTLINE" AND "APM
  10 - filter("BDMWORKCEN2_"."PLANT"="APMACTUALS0_"."FACTORY")
 
-------------------------------------------------------------------------------
Object ID  : 285351
Schema Name: JC800
SQL ID     : 39y4wqyrwtrm7
SQL Text   : insert into mldtemp2 (p1,p2) values (:1 ,:2 )
 
-------------------------------------------------------------------------------
FINDINGS SECTION (1 finding)
-------------------------------------------------------------------------------
 
1- Statistics Finding
---------------------
  尚未分析表 "JC800"."MLDTEMP2"。
 
  Recommendation
  --------------
  - 考虑收集此表的优化程序统计信息。
    execute dbms_stats.gather_table_stats(ownname => 'JC800', tabname =>
            'MLDTEMP2', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
            method_opt => 'FOR ALL COLUMNS SIZE AUTO');
 
  Rationale
  ---------
    为了选择好的执行计划, 优化程序需要此表的最新统计信息。
 
-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION
-------------------------------------------------------------------------------
 
1- Original
-----------
 
--------------------------------------------------------------------------------
| Id  | Operation                | Name     | Rows  | Bytes | Cost (%CPU)| Time
--------------------------------------------------------------------------------
|   0 | INSERT STATEMENT         |          |  8168 |    31M|    29   (0)| 00:00
|   1 |  LOAD TABLE CONVENTIONAL | MLDTEMP2 |       |       |            |
--------------------------------------------------------------------------------
 
-------------------------------------------------------------------------------

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7569309/viewspace-2133671/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
主要负责客户现场exadata与exalogic设备的维护工作, 擅长于ORACLE数据库环境/高可用环境的搭建及故障诊断, 并且也获有 11g ocp 证书,10g ocm 证书

注册时间:2017-01-10

  • 博文量
    90
  • 访问量
    84716