У меня есть запрос, который выбирается из представления и из нескольких таблиц.
Когда я выполняю этот запрос "как есть" - производительность очень плохая.
Когда я 'Принимая запрос представления и добавляя его к внешнему запросу с помощью WITH CLAUSE
, он выполняется очень быстро.
Мой тест показывает, что проблема не в самом запросе представления, а в том, как оптимизатор присоединяетсяпросмотреть данные с другими данными.
Какое объяснение этой проблемы?
В запросах на выборку отсутствуют некоторые поля из-за ограничения в 30 КБ символов.
--View:
CREATE OR REPLACE VIEW DWH.CC_MC_VIEW AS
SELECT /*+ full(E) */
DISTINCT/* a lot of fields */
FROM dwh.t2002_merkazei_tamhir_cur a
LEFT JOIN dwh.allovdim b
ON a.oved_achrai_char = TO_CHAR(b.mis_oved)
AND a.company = b.company
LEFT JOIN dwh.t2003_kodei_merkazei_tamhir h
ON h.year = TO_CHAR(SYSDATE-28,'yyyy')
AND h.erech = a.c01_agaf
AND h.company = A.company
AND h.amuda = '01'
LEFT JOIN dwh.t2003_kodei_merkazei_tamhir g
ON g.erech = a.c03_minhal_rb
AND g.amuda = '03'
AND g.year = TO_CHAR(SYSDATE-28,'yyyy')
AND g.company = A.company
LEFT JOIN DWH_COMPANIES E
ON A.COMPANY = E.COM_COMPANY_CODE
LEFT JOIN dwh.t2003_kodei_merkazei_tamhir d
ON d.erech = a.c02_minhalhativa
AND d.amuda = '02'
AND D.year = TO_CHAR(SYSDATE-28,'yyyy')
AND A.COMPANY = D.COMPANY
LEFT JOIN dwh.allovdim c
ON d.oved_achrai = c.mis_oved
AND d.company = c.company
LEFT JOIN DWH_COMPANIES F
ON D.COMPANY = F.COM_COMPANY_CODE
WHERE KOD_SGIRA = 1;
запрос на представление (плохая производительность)
(SELECT ROUND(dwh.plm_docdelivery.RELEASEDDATE-dwh.plm_docdelivery.PROCESSSTARTDATE),
ROUND(sysdate -dwh.plm_docdelivery.PROCESSSTARTDATE),
dwh.plm_docdelivery.*,
dwh.cc_mc_view.*,
dwh.plm_programs.*,
FROM dwh.plm_docdelivery,
DWH.PLM_PROGRAMS,
dwh.cc_mc_view,
dwh.allovdim ENG_OWNER,
dwh.plm_last_rev
WHERE
(
dwh.plm_docdelivery.PROGRAMNUMBER=dwh.plm_programs.PROGRAMNUMBER
AND dwh.plm_docdelivery.COMPANY=dwh.plm_programs.COMPANY
AND dwh.plm_docdelivery.LOGISTICCOMPANY=dwh.plm_programs.LOGISTICCOMPANY
)
AND
(
dwh.plm_docdelivery.ENGOWNERID= ENG_OWNER.EMP_ID(+)
)
AND
(
dwh.cc_mc_view.MERKAZ_TAMHIR(+)=ENG_OWNER.MIS_TAMH
AND dwh.cc_mc_view.COMPANY(+) =ENG_OWNER.COMPANY
)
AND
(
dwh.plm_last_rev.COMPANY=dwh.plm_docdelivery.COMPANY
AND dwh.plm_last_rev.LOGISTICCOMPANY=dwh.plm_docdelivery.LOGISTICCOMPANY
AND dwh.plm_last_rev.PROGRAMNUMBER=dwh.plm_docdelivery.PROGRAMNUMBER
AND dwh.plm_last_rev.DOCUMENT=dwh.plm_docdelivery.DOCUMENT
)
AND
(ENG_OWNER.COMPANY<>'SOL')
AND
(dwh.plm_docdelivery.PROGRAMNUMBER IN ('X395','X419','X422','X379','X454','X372','X308', 'X394','X426','X433','X423','X391','X391A','X393','X490','X510','X460','X466A','X466B', 'X466C','X448','T622','T610','X461','X470','X520','X436','X560','D308','X922B','X922','X435', 'X494','X402','X995SP','X493','X481','X990','T799')
AND
(dwh.plm_docdelivery.CDRLTYPE <> 'SDRL'
OR dwh.plm_docdelivery.CDRLTYPE IS NULL)
AND dwh.plm_last_rev.LAST_REV = dwh.plm_docdelivery.DOCUMENTREVISION
AND((dwh.plm_docdelivery.AUTHORDATE <= '16-07-2017 00:00:00'
AND(dwh.plm_docdelivery.STATUS IN ( '(Freeze)','(Released)' )
OR dwh.plm_docdelivery.STATUS IS NULL))
OR dwh.plm_docdelivery.RELEASEDDATE IS NOT NULL)
AND dwh.plm_programs.COMPANY IN ('ESL','TCL'))
MINUS
SELECT ROUND(dwh.plm_docdelivery.RELEASEDDATE-dwh.plm_docdelivery.PROCESSSTARTDATE),
ROUND(sysdate -dwh.plm_docdelivery.PROCESSSTARTDATE),
dwh.plm_docdelivery.STATUS,
dwh.plm_docdelivery.SIGNERSLEFT,
dwh.plm_docdelivery.RELEASEDDATE,
dwh.plm_docdelivery.PROGRAMNUMBER,
dwh.plm_programs.PROGRAMNAME,
dwh.cc_mc_view.MINHALHATIVA,
TO_CHAR(dwh.plm_docdelivery.PLANNEDVALUE)
||
dwh.plm_docdelivery.TIMEUNIT
||
' '
||
CASE
WHEN dwh.plm_docdelivery.PLANNEDRELATION='After'
THEN '+'
WHEN dwh.plm_docdelivery.PLANNEDRELATION='Before'
THEN '-'
ELSE ''
END
||
dwh.plm_docdelivery.CDRLGATENAME,
ENG_OWNER.MISHPAHA,
ENG_OWNER.MISHPAHA_ENG,
ENG_OWNER.PRATI,
ENG_OWNER.PRATI_ENG,
dwh.plm_docdelivery.ENGOWNERID,
dwh.plm_docdelivery.ENGDISCIPLINE,
dwh.cc_mc_view.ACHRAI_HATIVA_NAME,
dwh.cc_mc_view.OVED_ACHRAI_HATIVA_FULL,
dwh.cc_mc_view.ACHRAI_MT_NAME,
dwh.cc_mc_view.OVED_ACHRAI_MT_FULL,
dwh.plm_docdelivery.DOCUMENTREVISION,
dwh.plm_docdelivery.DOCUMENTNAME,
dwh.plm_docdelivery.DOCUMENT,
dwh.plm_docdelivery.DELIVERY,
dwh.plm_docdelivery.CURRENTUSER ,
dwh.cc_mc_view.MERKAZ_TAMHIR,
dwh.plm_docdelivery.CDRLTYPE,
dwh.plm_docdelivery.CDRL,
dwh.plm_docdelivery.AUTHORDATE,
dwh.plm_docdelivery.DOC_REV_CREATION_DATE,
dwh.plm_docdelivery.DELIVERY_CREATION_DATE,
dwh.plm_docdelivery.GATEORIGINALDATE,
dwh.plm_programs.STATUS_DATE,
dwh.plm_docdelivery.ProcedureName,
dwh.plm_last_rev.LAST_REV,
dwh.plm_programs.COMPANY
FROM dwh.plm_docdelivery,
DWH.PLM_PROGRAMS,
dwh.cc_mc_view,
dwh.allovdim ENG_OWNER,
dwh.plm_last_rev
WHERE
(dwh.plm_docdelivery.PROGRAMNUMBER =dwh.plm_programs.PROGRAMNUMBER
AND dwh.plm_docdelivery.COMPANY =dwh.plm_programs.COMPANY
AND dwh.plm_docdelivery.LOGISTICCOMPANY=dwh.plm_programs.LOGISTICCOMPANY)
AND
(dwh.plm_docdelivery.ENGOWNERID= ENG_OWNER.EMP_ID(+))
AND
(dwh.cc_mc_view.MERKAZ_TAMHIR(+)=ENG_OWNER.MIS_TAMH
AND dwh.cc_mc_view.COMPANY(+) =ENG_OWNER.COMPANY)
AND
(dwh.plm_last_rev.COMPANY =dwh.plm_docdelivery.COMPANY
AND dwh.plm_last_rev.LOGISTICCOMPANY=dwh.plm_docdelivery.LOGISTICCOMPANY
AND dwh.plm_last_rev.PROGRAMNUMBER =dwh.plm_docdelivery.PROGRAMNUMBER
AND dwh.plm_last_rev.DOCUMENT =dwh.plm_docdelivery.DOCUMENT)
AND
(ENG_OWNER.COMPANY<>'SOL')
AND
(dwh.plm_docdelivery.PROGRAMNUMBER IN ('X395','X419','X422','X379','X454','X372','X308', 'X394','X426','X433','X423','X391','X391A','X393','X490','X510','X460','X466A','X466B', 'X466C','X448','T622','T610','X461','X470','X520','X436','X560','D308','X922B','X922','X435', 'X494','X402','X995SP','X493','X481','X990','T799')
AND dwh.plm_docdelivery.DELIVERY IS NOT NULL
AND dwh.plm_docdelivery.DOCUMENT IS NULL
AND dwh.plm_programs.COMPANY IN ('CMP1','CMP2')))
Объяснение плана для представления (плохая производительность)
Plan hash value: 822592127
-------------------------------------------------------------------------------------------------------------------------
| Id | Operation| Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 57 | 52896 | 32848 (2)| 00:01:39 |
| 1 | MINUS | | | | | |
| 2 | SORT UNIQUE | | 57 | 26448 | 16424 (2)| 00:00:50 |
| 3 | NESTED LOOPS OUTER | | 57 | 26448 | 16423 (2)| 00:00:50 |
| 4 | NESTED LOOPS | | 20 | 5540 | 14146 (3)| 00:00:43 |
|* 5 | HASH JOIN | | 20 | 4660 | 14106 (3)| 00:00:43 |
|* 6 | TABLE ACCESS FULL | PLM_LAST_REV | 50 | 1300 | 13959 (3)| 00:00:42 |
| 7 | NESTED LOOPS | | 798 | 161K| 147 (2)| 00:00:01 |
| 8 | NESTED LOOPS | | 798 | 161K| 147 (2)| 00:00:01 |
|* 9 | TABLE ACCESS FULL| PLM_PROGRAMS | 44 | 1496 | 14 (8)| 00:00:01 |
|* 10 | INDEX RANGE SCAN | IDX_DELIVERY_1 | 1 | | 2 (0)| 00:00:01 |
|* 11 | TABLE ACCESS BY INDEX ROWID | PLM_DOCDELIVERY | 18 | 3114 | 3 (0)| 00:00:01 |
| 12 | TABLE ACCESS BY INDEX ROWID | ALLOVDIM | 1 | 44 | 2 (0)| 00:00:01 |
|* 13 | INDEX RANGE SCAN | ALLOVDIM_I_EMP_CMP | 1 | | 1 (0)| 00:00:01 |
| 14 | VIEW PUSHED PREDICATE| CC_MC_VIEW | 1 | 187 | 114 (2)| 00:00:01 |
| 15 | SORT UNIQUE | | 1 | 217 | 114 (2)| 00:00:01 |
|* 16 | FILTER | | | | | |
| 17 | NESTED LOOPS OUTER| | 1 | 217 | 113 (1)| 00:00:01 |
| 18 | NESTED LOOPS OUTER | | 1 | 173 | 97 (2)| 00:00:01 |
|* 19 | HASH JOIN OUTER | | 1 | 167 | 96 (2)| 00:00:01 |
| 20 | NESTED LOOPS OUTER | | 1 | 161 | 48 (0)| 00:00:01 |
| 21 | NESTED LOOPS OUTER | | 1 | 117 | 46 (0)| 00:00:01 |
| 22 | NESTED LOOPS OUTER | | 1 | 90 | 32 (0)| 00:00:01 |
| 23 | NESTED LOOPS OUTER | | 1 | 65 | 18 (0)| 00:00:01 |
|* 24 | TABLE ACCESS BY INDEX ROWID| T2002_MERKAZEI_TAMHIR_CUR | 1 | 40 | 4 (0)| 00:00:01 |
|* 25 |INDEX RANGE SCAN | T2002_MERKAZEI_TAMHIR_CUR_I1 | 3 | | 1 (0)| 00:00:01 |
| 26 | TABLE ACCESS BY INDEX ROWID| T2003_KODEI_MERKAZEI_TAMHIR | 1 | 25 | 14 (0)| 00:00:01 |
|* 27 |INDEX RANGE SCAN | T2003_K_MT97_Y_AE_I | 1 | | 13 (0)| 00:00:01 |
| 28 | TABLE ACCESS BY INDEX ROWID | T2003_KODEI_MERKAZEI_TAMHIR | 1 | 25 | 14 (0)| 00:00:01 |
|* 29 | INDEX RANGE SCAN | T2003_K_MT97_Y_AE_I | 1 | | 13 (0)| 00:00:01 |
| 30 | TABLE ACCESS BY INDEX ROWID | T2003_KODEI_MERKAZEI_TAMHIR | 1 | 27 | 14 (0)| 00:00:01 |
|* 31 | INDEX RANGE SCAN | T2003_K_MT97_Y_AE_I | 1 | | 13 (0)| 00:00:01 |
| 32 | TABLE ACCESS BY INDEX ROWID | ALLOVDIM | 1 | 44 | 2 (0)| 00:00:01 |
|* 33 | INDEX RANGE SCAN | ALLOVDIM_I_CMP_MIS | 1 | | 1 (0)| 00:00:01 |
|* 34 | TABLE ACCESS FULL | DWH_COMPANIES| 1 | 6 | 47 (0)| 00:00:01 |
| 35 | TABLE ACCESS BY INDEX ROWID | DWH_COMPANIES| 1 | 6 | 1 (0)| 00:00:01 |
|* 36 | INDEX UNIQUE SCAN | COMP_IDX1 | 1 | | 0 (0)| 00:00:01 |
| 37 | TABLE ACCESS BY INDEX ROWID | ALLOVDIM | 1 | 44 | 16 (0)| 00:00:01 |
|* 38 | INDEX RANGE SCAN| ALLOVDIM_I_CMP_MIS | 1 | | 15 (0)| 00:00:01 |
| 39 | SORT UNIQUE | | 57 | 26448 | 16424 (2)| 00:00:50 |
| 40 | NESTED LOOPS OUTER | | 57 | 26448 | 16423 (2)| 00:00:50 |
| 41 | NESTED LOOPS | | 20 | 5540 | 14145 (3)| 00:00:43 |
|* 42 | HASH JOIN | | 20 | 4660 | 14105 (3)| 00:00:43 |
|* 43 | TABLE ACCESS FULL | PLM_LAST_REV | 50 | 1300 | 13959 (3)| 00:00:42 |
| 44 | NESTED LOOPS | | 64 | 13248 | 146 (1)| 00:00:01 |
| 45 | NESTED LOOPS | | 64 | 13248 | 146 (1)| 00:00:01 |
|* 46 | TABLE ACCESS FULL| PLM_PROGRAMS | 44 | 1496 | 14 (8)| 00:00:01 |
|* 47 | INDEX RANGE SCAN | IDX_DELIVERY_1 | 1 | | 2 (0)| 00:00:01 |
|* 48 | TABLE ACCESS BY INDEX ROWID | PLM_DOCDELIVERY | 1 | 173 | 3 (0)| 00:00:01 |
| 49 | TABLE ACCESS BY INDEX ROWID | ALLOVDIM | 1 | 44 | 2 (0)| 00:00:01 |
|* 50 | INDEX RANGE SCAN | ALLOVDIM_I_EMP_CMP | 1 | | 1 (0)| 00:00:01 |
| 51 | VIEW PUSHED PREDICATE| CC_MC_VIEW | 1 | 187 | 114 (2)| 00:00:01 |
| 52 | SORT UNIQUE | | 1 | 217 | 114 (2)| 00:00:01 |
|* 53 | FILTER | | | | | |
| 54 | NESTED LOOPS OUTER| | 1 | 217 | 113 (1)| 00:00:01 |
| 55 | NESTED LOOPS OUTER | | 1 | 173 | 97 (2)| 00:00:01 |
|* 56 | HASH JOIN OUTER | | 1 | 167 | 96 (2)| 00:00:01 |
| 57 | NESTED LOOPS OUTER | | 1 | 161 | 48 (0)| 00:00:01 |
| 58 | NESTED LOOPS OUTER | | 1 | 117 | 46 (0)| 00:00:01 |
| 59 | NESTED LOOPS OUTER | | 1 | 90 | 32 (0)| 00:00:01 |
| 60 | NESTED LOOPS OUTER | | 1 | 65 | 18 (0)| 00:00:01 |
|* 61 | TABLE ACCESS BY INDEX ROWID| T2002_MERKAZEI_TAMHIR_CUR | 1 | 40 | 4 (0)| 00:00:01 |
|* 62 |INDEX RANGE SCAN | T2002_MERKAZEI_TAMHIR_CUR_I1 | 3 | | 1 (0)| 00:00:01 |
| 63 | TABLE ACCESS BY INDEX ROWID| T2003_KODEI_MERKAZEI_TAMHIR | 1 | 25 | 14 (0)| 00:00:01 |
|* 64 |INDEX RANGE SCAN | T2003_K_MT97_Y_AE_I | 1 | | 13 (0)| 00:00:01 |
| 65 | TABLE ACCESS BY INDEX ROWID | T2003_KODEI_MERKAZEI_TAMHIR | 1 | 25 | 14 (0)| 00:00:01 |
|* 66 | INDEX RANGE SCAN | T2003_K_MT97_Y_AE_I | 1 | | 13 (0)| 00:00:01 |
| 67 | TABLE ACCESS BY INDEX ROWID | T2003_KODEI_MERKAZEI_TAMHIR | 1 | 27 | 14 (0)| 00:00:01 |
|* 68 | INDEX RANGE SCAN | T2003_K_MT97_Y_AE_I | 1 | | 13 (0)| 00:00:01 |
| 69 | TABLE ACCESS BY INDEX ROWID | ALLOVDIM | 1 | 44 | 2 (0)| 00:00:01 |
|* 70 | INDEX RANGE SCAN | ALLOVDIM_I_CMP_MIS | 1 | | 1 (0)| 00:00:01 |
|* 71 | TABLE ACCESS FULL | DWH_COMPANIES| 1 | 6 | 47 (0)| 00:00:01 |
| 72 | TABLE ACCESS BY INDEX ROWID | DWH_COMPANIES| 1 | 6 | 1 (0)| 00:00:01 |
|* 73 | INDEX UNIQUE SCAN | COMP_IDX1 | 1 | | 0 (0)| 00:00:01 |
| 74 | TABLE ACCESS BY INDEX ROWID | ALLOVDIM | 1 | 44 | 16 (0)| 00:00:01 |
|* 75 | INDEX RANGE SCAN| ALLOVDIM_I_CMP_MIS | 1 | | 15 (0)| 00:00:01 |
Вариант с предложением WITH (хорошая производительность)
with CC as
(SELECT /*+full(E) */
DISTINCT/* a lot of fields */
FROM dwh.t2002_merkazei_tamhir_cur a
LEFT JOIN dwh.allovdim b
ON a.oved_achrai_char = TO_CHAR(b.mis_oved)
AND a.company = b.company
LEFT JOIN dwh.t2003_kodei_merkazei_tamhir h
ON h.year = TO_CHAR(SYSDATE-28,'yyyy')
AND h.erech = a.c01_agaf
AND h.company = A.company
AND h.amuda = '01'
LEFT JOIN dwh.t2003_kodei_merkazei_tamhir g
ON g.erech = a.c03_minhal_rb
AND g.amuda = '03'
AND g.year = TO_CHAR(SYSDATE-28,'yyyy')
AND g.company = A.company
LEFT JOIN DWH_COMPANIES E
ON A.COMPANY = E.COM_COMPANY_CODE
LEFT JOIN dwh.t2003_kodei_merkazei_tamhir d
ON d.erech = a.c02_minhalhativa
AND d.amuda = '02'
AND D.year = TO_CHAR(SYSDATE-28,'yyyy')
AND A.COMPANY = D.COMPANY
LEFT JOIN dwh.allovdim c
ON d.oved_achrai = c.mis_oved
AND d.company = c.company
LEFT JOIN DWH_COMPANIES F
on D.COMPANY = F.COM_COMPANY_CODE
WHERE KOD_SGIRA = 1
)
(
SELECT ROUND(dwh.plm_docdelivery.RELEASEDDATE-dwh.plm_docdelivery.PROCESSSTARTDATE),
ROUND(sysdate -dwh.plm_docdelivery.PROCESSSTARTDATE),
dwh.plm_docdelivery.*,
dwh.cc_mc_view.*,
dwh.plm_programs.*,
FROM dwh.plm_docdelivery,
DWH.PLM_PROGRAMS,
cc,
dwh.allovdim ENG_OWNER,
dwh.plm_last_rev
WHERE
(
dwh.plm_docdelivery.PROGRAMNUMBER=dwh.plm_programs.PROGRAMNUMBER
AND dwh.plm_docdelivery.COMPANY=dwh.plm_programs.COMPANY
AND dwh.plm_docdelivery.LOGISTICCOMPANY=dwh.plm_programs.LOGISTICCOMPANY
)
AND
(dwh.plm_docdelivery.ENGOWNERID= ENG_OWNER.EMP_ID(+))
AND
(cc.MERKAZ_TAMHIR(+)=ENG_OWNER.MIS_TAMH
AND cc.COMPANY(+) =ENG_OWNER.COMPANY)
AND
(dwh.plm_last_rev.COMPANY =dwh.plm_docdelivery.COMPANY
AND dwh.plm_last_rev.LOGISTICCOMPANY=dwh.plm_docdelivery.LOGISTICCOMPANY
AND dwh.plm_last_rev.PROGRAMNUMBER =dwh.plm_docdelivery.PROGRAMNUMBER
AND dwh.plm_last_rev.DOCUMENT =dwh.plm_docdelivery.DOCUMENT)
AND
(ENG_OWNER.COMPANY<>'SOL')
AND
(dwh.plm_docdelivery.PROGRAMNUMBER IN ('X395','X419','X422','X379','X454','X372','X308', 'X394','X426','X433','X423','X391','X391A','X393','X490','X510','X460','X466A','X466B', 'X466C','X448','T622','T610','X461','X470','X520','X436','X560','D308','X922B','X922','X435', 'X494','X402','X995SP','X493','X481','X990','T799')
AND
(dwh.plm_docdelivery.CDRLTYPE <> 'SDRL'
OR dwh.plm_docdelivery.CDRLTYPE IS NULL)
AND dwh.plm_last_rev.LAST_REV = dwh.plm_docdelivery.DOCUMENTREVISION
AND((dwh.plm_docdelivery.AUTHORDATE <= '16-07-2017 00:00:00'
AND(dwh.plm_docdelivery.STATUS IN ( '(Freeze)','(Released)' )
OR dwh.plm_docdelivery.STATUS IS NULL))
OR dwh.plm_docdelivery.RELEASEDDATE IS NOT NULL)
AND dwh.plm_programs.COMPANY IN ('ESL','TCL'))
MINUS
SELECT ROUND(dwh.plm_docdelivery.RELEASEDDATE-dwh.plm_docdelivery.PROCESSSTARTDATE),
ROUND(sysdate-dwh.plm_docdelivery.PROCESSSTARTDATE),
dwh.plm_docdelivery.STATUS,
dwh.plm_docdelivery.SIGNERSLEFT,
dwh.plm_docdelivery.RELEASEDDATE,
dwh.plm_docdelivery.PROGRAMNUMBER,
dwh.plm_programs.PROGRAMNAME,
cc.MINHALHATIVA,
TO_CHAR(dwh.plm_docdelivery.PLANNEDVALUE)
||
dwh.plm_docdelivery.TIMEUNIT
||
' '
||
CASE
WHEN dwh.plm_docdelivery.PLANNEDRELATION='After'
THEN '+'
WHEN dwh.plm_docdelivery.PLANNEDRELATION='Before'
THEN '-'
ELSE ''
END
||
dwh.plm_docdelivery.CDRLGATENAME,
ENG_OWNER.MISHPAHA,
ENG_OWNER.MISHPAHA_ENG,
ENG_OWNER.PRATI,
ENG_OWNER.PRATI_ENG,
dwh.plm_docdelivery.ENGOWNERID,
dwh.plm_docdelivery.ENGDISCIPLINE,
cc.ACHRAI_HATIVA_NAME,
cc.OVED_ACHRAI_HATIVA_FULL,
cc.ACHRAI_MT_NAME,
cc.OVED_ACHRAI_MT_FULL,
dwh.plm_docdelivery.DOCUMENTREVISION,
dwh.plm_docdelivery.DOCUMENTNAME,
dwh.plm_docdelivery.DOCUMENT,
dwh.plm_docdelivery.DELIVERY,
dwh.plm_docdelivery.CURRENTUSER ,
cc.MERKAZ_TAMHIR,
dwh.plm_docdelivery.CDRLTYPE,
dwh.plm_docdelivery.CDRL,
dwh.plm_docdelivery.AUTHORDATE,
dwh.plm_docdelivery.DOC_REV_CREATION_DATE,
dwh.plm_docdelivery.DELIVERY_CREATION_DATE,
dwh.plm_docdelivery.GATEORIGINALDATE,
dwh.plm_programs.STATUS_DATE,
dwh.plm_docdelivery.ProcedureName,
dwh.plm_last_rev.LAST_REV,
dwh.plm_programs.COMPANY
FROM dwh.plm_docdelivery,DWH.PLM_PROGRAMS,cc,dwh.allovdim ENG_OWNER,dwh.plm_last_rev
WHERE(dwh.plm_docdelivery.PROGRAMNUMBER=dwh.plm_programs.PROGRAMNUMBER
AND dwh.plm_docdelivery.COMPANY=dwh.plm_programs.COMPANY
AND dwh.plm_docdelivery.LOGISTICCOMPANY=dwh.plm_programs.LOGISTICCOMPANY)
AND(dwh.plm_docdelivery.ENGOWNERID=ENG_OWNER.EMP_ID(+))
AND(cc.MERKAZ_TAMHIR(+)=ENG_OWNER.MIS_TAMH
AND cc.COMPANY(+)=ENG_OWNER.COMPANY)
AND(dwh.plm_last_rev.COMPANY=dwh.plm_docdelivery.COMPANY
AND dwh.plm_last_rev.LOGISTICCOMPANY=dwh.plm_docdelivery.LOGISTICCOMPANY
AND dwh.plm_last_rev.PROGRAMNUMBER=dwh.plm_docdelivery.PROGRAMNUMBER
AND dwh.plm_last_rev.DOCUMENT=dwh.plm_docdelivery.DOCUMENT)
AND(ENG_OWNER.COMPANY<>'SOL')
AND(dwh.plm_docdelivery.PROGRAMNUMBER IN ('X395','X419','X422','X379','X454','X372','X308', 'X394','X426','X433','X423','X391','X391A','X393','X490','X510','X460','X466A','X466B', 'X466C','X448','T622','T610','X461','X470','X520','X436','X560','D308','X922B','X922','X435', 'X494','X402','X995SP','X493','X481','X990','T799')
AND dwh.plm_docdelivery.DELIVERY IS NOT NULL
AND dwh.plm_docdelivery.DOCUMENT IS NULL
AND dwh.plm_programs.COMPANY IN ('CMP1','CMP2')));
Объяснить план предложения WITH
Plan hash value: 2179438877
-----------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 20 | 18560 | | 28536 (3)| 00:01:26 |
| 1 | TEMP TABLE TRANSFORMATION | | | | | | |
| 2 | LOAD AS SELECT | SYS_TEMP_0FDA4CB1D_E5C2B79E | | | | | |
| 3 | HASH UNIQUE | | 5692 | 1206K| 1312K| 4670 (2)| 00:00:15 |
|* 4 | HASH JOIN RIGHT OUTER | | 5692 | 1206K| | 4245 (2)| 00:00:13 |
| 5 | TABLE ACCESS FULL| DWH_COMPANIES | 101 | 606 | | 47 (0)| 00:00:01 |
|* 6 | HASH JOIN OUTER | | 5691 | 1172K| | 4197 (2)| 00:00:13 |
|* 7 | HASH JOIN OUTER | | 5691 | 928K| | 2452 (2)| 00:00:08 |
|* 8 | HASH JOIN RIGHT OUTER | | 5691 | 683K| | 706 (1)| 00:00:03 |
| 9 | TABLE ACCESS FULL | DWH_COMPANIES | 101 | 606 | | 47 (0)| 00:00:01 |
|* 10 | HASH JOIN RIGHT OUTER | | 5691 | 650K| | 659 (1)| 00:00:02 |
| 11 | TABLE ACCESS BY INDEX ROWID | T2003_KODEI_MERKAZEI_TAMHIR | 25 | 675 | | 37 (0)| 00:00:01 |
|* 12 | INDEX SKIP SCAN | T2003_K_MT97_Y_AE_I | 25 | | | 34 (0)| 00:00:01 |
|* 13 | HASH JOIN RIGHT OUTER | | 5691 | 500K| | 621 (1)| 00:00:02 |
| 14 | TABLE ACCESS BY INDEX ROWID | T2003_KODEI_MERKAZEI_TAMHIR | 25 | 625 | | 37 (0)| 00:00:01 |
|* 15 | INDEX SKIP SCAN | T2003_K_MT97_Y_AE_I | 25 | | | 34 (0)| 00:00:01 |
|* 16 | HASH JOIN RIGHT OUTER | | 5691 | 361K| | 584 (1)| 00:00:02 |
| 17 | TABLE ACCESS BY INDEX ROWID| T2003_KODEI_MERKAZEI_TAMHIR | 25 | 625 | | 37 (0)| 00:00:01 |
|* 18 | INDEX SKIP SCAN | T2003_K_MT97_Y_AE_I | 25 | | | 34 (0)| 00:00:01 |
|* 19 | TABLE ACCESS FULL | T2002_MERKAZEI_TAMHIR_CUR | 5691 | 222K| | 547 (1)| 00:00:02 |
| 20 | TABLE ACCESS FULL | ALLOVDIM | 51269 | 2202K| | 1744 (2)| 00:00:06 |
| 21 | TABLE ACCESS FULL | ALLOVDIM | 51269 | 2202K| | 1744 (2)| 00:00:06 |
| 22 | MINUS | | | | | | |
| 23 | SORT UNIQUE | | 20 | 9280 | | 14268 (3)| 00:00:43 |
|* 24 | HASH JOIN OUTER | | 20 | 9280 | | 14267 (3)| 00:00:43 |
| 25 | NESTED LOOPS | | 20 | 5540 | | 14146 (3)| 00:00:43 |
| 26 | NESTED LOOPS | | 20 | 5540 | | 14146 (3)| 00:00:43 |
|* 27 | HASH JOIN | | 20 | 4660 | | 14106 (3)| 00:00:43 |
|* 28 | TABLE ACCESS FULL | PLM_LAST_REV| 50 | 1300 | | 13959 (3)| 00:00:42 |
| 29 | NESTED LOOPS | | 798 | 161K| | 147 (2)| 00:00:01 |
| 30 | NESTED LOOPS | | 798 | 161K| | 147 (2)| 00:00:01 |
|* 31 | TABLE ACCESS FULL | PLM_PROGRAMS| 44 | 1496 | | 14 (8)| 00:00:01 |
|* 32 | INDEX RANGE SCAN | IDX_DELIVERY_1 | 1 | | | 2 (0)| 00:00:01 |
|* 33 | TABLE ACCESS BY INDEX ROWID | PLM_DOCDELIVERY | 18 | 3114 | | 3 (0)| 00:00:01 |
|* 34 | INDEX RANGE SCAN | ALLOVDIM_I_EMP_CMP | 1 | | | 1 (0)| 00:00:01 |
| 35 | TABLE ACCESS BY INDEX ROWID | ALLOVDIM | 1 | 44 | | 2 (0)| 00:00:01 |
|* 36 | VIEW | | 5692 | 1039K| | 121 (1)| 00:00:01 |
| 37 | TABLE ACCESS FULL | SYS_TEMP_0FDA4CB1D_E5C2B79E | 5692 | 1206K| | 121 (1)| 00:00:01 |
| 38 | SORT UNIQUE | | 20 | 9280 | | 14268 (3)| 00:00:43 |
|* 39 | HASH JOIN OUTER | | 20 | 9280 | | 14267 (3)| 00:00:43 |
| 40 | NESTED LOOPS | | 20 | 5540 | | 14145 (3)| 00:00:43 |
| 41 | NESTED LOOPS | | 20 | 5540 | | 14145 (3)| 00:00:43 |
|* 42 | HASH JOIN | | 20 | 4660 | | 14105 (3)| 00:00:43 |
|* 43 | TABLE ACCESS FULL | PLM_LAST_REV| 50 | 1300 | | 13959 (3)| 00:00:42 |
| 44 | NESTED LOOPS | | 64 | 13248 | | 146 (1)| 00:00:01 |
| 45 | NESTED LOOPS | | 64 | 13248 | | 146 (1)| 00:00:01 |
|* 46 | TABLE ACCESS FULL | PLM_PROGRAMS| 44 | 1496 | | 14 (8)| 00:00:01 |
|* 47 | INDEX RANGE SCAN | IDX_DELIVERY_1 | 1 | | | 2 (0)| 00:00:01 |
|* 48 | TABLE ACCESS BY INDEX ROWID | PLM_DOCDELIVERY | 1 | 173 | | 3 (0)| 00:00:01 |
|* 49 | INDEX RANGE SCAN | ALLOVDIM_I_EMP_CMP | 1 | | | 1 (0)| 00:00:01 |
| 50 | TABLE ACCESS BY INDEX ROWID | ALLOVDIM | 1 | 44 | | 2 (0)| 00:00:01 |
|* 51 | VIEW | | 5692 | 1039K| | 121 (1)| 00:00:01 |
| 52 | TABLE ACCESS FULL | SYS_TEMP_0FDA4CB1D_E5C2B79E | 5692 | 1206K| | 121 (1)| 00:00:01 |