explain plan for SELECT a.trans_org as 机构代码 FROM (select x.trans_org, x.ext_acct_no, x.acct_seqno, y.agmt_id, x.cust_no from (select * from dwf.f_evt_savr_bigtrans where trans_date >= To_Date('2013-12-03', 'YYYY-MM-DD') AND trans_date <= TO_DATE('2014-03-05', 'YYYY-MM-DD') AND trans_org in (SELECT t.Org_Id FROM b_m_Sys_Branch t WHERE t.Status = 1 AND t.Dept_Flag != '2' CONNECT BY PRIOR t.Id = t.Parent_Id START WITH t.Org_Id = 10000)) x, (select ab.*, e.bus_name from (select * From dwf.f_agt_savb_acctinfo_h where start_dt <= TO_DATE('2014-01-05', 'YYYY-MM-DD') AND end_dt > TO_DATE('2014-01-05', 'YYYY-MM-DD')) ab left join dwf.f_savc_buscode e ON ab.bus_code = e.bus_code AND ab.term = e.term AND ab.subj_cd = e.subj_cd) y where x.ext_acct_no = y.agmt_id and x.acct_seqno = y.acct_seqno) a LEFT JOIN (select distinct pty_id, (case when pty_type = 'T28010' then pty_type else 'T28020' end) pty_type from dwf.f_pty_table where end_dt = to_date('2999-12-31', 'YYYY-MM-DD')) g ON a.cust_no = g.pty_id; select * from table(dbms_xplan.display()); Plan hash value: 4248383368 --------------------------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | --------------------------------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 4704 | 771K| | 86671 (1)| 00:17:21 | |* 1 | HASH JOIN OUTER | | 4704 | 771K| | 86671 (1)| 00:17:21 | |* 2 | HASH JOIN RIGHT OUTER | | 4048 | 592K| | 75266 (1)| 00:15:04 | |* 3 | TABLE ACCESS FULL | F_SAVC_BUSCODE | 400 | 5600 | | 5 (0)| 00:00:01 | | 4 | NESTED LOOPS | | 4048 | 537K| | 75260 (1)| 00:15:04 | | 5 | NESTED LOOPS | | 4048 | 537K| | 75260 (1)| 00:15:04 | |* 6 | HASH JOIN | | 4048 | 328K| | 59961 (1)| 00:12:00 | | 7 | VIEW | VW_NSO_1 | 1 | 27 | | 4 (25)| 00:00:01 | | 8 | HASH UNIQUE | | 1 | 49 | | 4 (25)| 00:00:01 | |* 9 | FILTER | | | | | | | |* 10 | CONNECT BY NO FILTERING WITH SW (UNIQUE)| | | | | | | | 11 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 82 | 1640 | | 3 (0)| 00:00:01 | |* 12 | TABLE ACCESS FULL | F_EVT_SAVR_BIGTRANS | 421K| 22M| | 59956 (1)| 00:12:00 | |* 13 | INDEX RANGE SCAN | F_AGT_SAVB_ACCTINFO_H_IDX2 | 1 | | | 3 (0)| 00:00:01 | |* 14 | TABLE ACCESS BY INDEX ROWID | F_AGT_SAVB_ACCTINFO_H | 1 | 53 | | 4 (0)| 00:00:01 | | 15 | VIEW | | 590K| 10M| | 11403 (1)| 00:02:17 | | 16 | HASH UNIQUE | | 590K| 19M| 24M| 11403 (1)| 00:02:17 | |* 17 | TABLE ACCESS FULL | F_PTY_TABLE | 590K| 19M| | 6032 (1)| 00:01:13 | --------------------------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 1 - access("F_EVT_SAVR_BIGTRANS"."CUST_NO"="G"."PTY_ID"(+)) 2 - access("F_AGT_SAVB_ACCTINFO_H"."SUBJ_CD"="E"."SUBJ_CD"(+) AND "E"."TERM"(+)=TO_NUMBER("F_AGT_SAVB_ACCTINFO_H"."TERM") AND "E"."BUS_CODE"(+)=TO_NUMBER("F_AGT_SAVB_ACCTINFO_H"."BUS_CODE")) 3 - filter("E"."SUBJ_CD"(+) IS NOT NULL) 6 - access("TRANS_ORG"="ORG_ID") 9 - filter("T"."STATUS"=1 AND "T"."DEPT_FLAG"<>'2') 10 - access("T"."PARENT_ID"=PRIOR "T"."ID") filter(TO_NUMBER("T"."ORG_ID")=10000) 12 - filter("TRANS_DATE">=TO_DATE(' 2013-12-03 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "TRANS_DATE"<=TO_DATE(' 2014-03-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) 13 - access("F_EVT_SAVR_BIGTRANS"."EXT_ACCT_NO"="F_AGT_SAVB_ACCTINFO_H"."AGMT_ID" AND "F_EVT_SAVR_BIGTRANS"."ACCT_SEQNO"="F_AGT_SAVB_ACCTINFO_H"."ACCT_SEQNO") 14 - filter("END_DT">TO_DATE(' 2014-01-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "START_DT"<=TO_DATE(' 2014-01-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) 17 - filter("END_DT"=TO_DATE(' 2999-12-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) SELECT a.trans_org as 禄煤? FROM (select x.trans_org, x.ext_acct_no, x.acct_seqno, y.agmt_id, x.cust_no from (select * from dwf.f_evt_savr_bigtrans where trans_date >= To_Date('2013-12-03', 'YYYY-MM-DD') AND trans_date <= TO_DATE('2014-03-05', 'YYYY-MM-DD') AND trans_org in (SELECT /*+ no_unnest*/ t.Org_Id FROM b_m_Sys_Branch t WHERE t.Status = 1 AND t.Dept_Flag != '2' CONNECT BY PRIOR t.Id = t.Parent_Id START WITH t.Org_Id = 10000)) x, (select ab.*, e.bus_name from (select * From dwf.f_agt_savb_acctinfo_h where start_dt <= TO_DATE('2014-01-05', 'YYYY-MM-DD') AND end_dt > TO_DATE('2014-01-05', 'YYYY-MM-DD')) ab left join dwf.f_savc_buscode e ON ab.bus_code = e.bus_code AND ab.term = e.term AND ab.subj_cd = e.subj_cd) y where x.ext_acct_no = y.agmt_id and x.acct_seqno = y.acct_seqno) a LEFT JOIN (select distinct pty_id, (case when pty_type = 'T28010' then pty_type else 'T28020' end) pty_type from dwf.f_pty_table where end_dt = to_date('2999-12-31', 'YYYY-MM-DD')) g ON a.cust_no = g.pty_id; SQL> select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST')); PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SQL_ID 29krh3fpfgzpf, child number 0 ------------------------------------- SELECT a.trans_org as 禄煤? FROM (select x.trans_org, x.ext_acct_no, x.acct_seqno, y.agmt_id, x.cust_no from (select * from dwf.f_evt_savr_bigtrans where trans_date >= To_Date('2013-12-03', 'YYYY-MM-DD') AND trans_date <= TO_DATE('2014-03-05', 'YYYY-MM-DD') AND trans_org in (SELECT /*+ no_unnest*/ t.Org_Id FROM b_m_Sys_Branch t WHERE t.Status = 1 AND t.Dept_Flag != '2' CONNECT BY PRIOR t.Id = t.Parent_Id START WITH t.Org_Id = 10000)) x, (select ab.*, e.bus_name from (select * From dwf.f_agt_savb_acctinfo_h where start_dt <= TO_DATE('2014-01-05', 'YYYY-MM-DD') Plan hash value: 1818178126 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | OMem | 1Mem | Used-Mem | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 1 | | 594K|00:00:53.87 | 1163K| 780K| | | | |* 1 | FILTER | | 1 | | 594K|00:00:53.87 | 1163K| 780K| | | | |* 2 | HASH JOIN RIGHT OUTER | | 1 | 489K| 707K|00:00:43.97 | 827K| 780K| 1519K| 1519K| 1606K (0)| |* 3 | TABLE ACCESS FULL | F_SAVC_BUSCODE | 1 | 400 | 400 |00:00:00.01 | 12 | 0 | | | | |* 4 | HASH JOIN | | 1 | 489K| 707K|00:00:43.02 | 827K| 780K| 56M| 6248K| 74M (0)| |* 5 | HASH JOIN RIGHT OUTER | | 1 | 489K| 815K|00:00:05.03 | 242K| 220K| 34M| 7428K| 34M (0)| | 6 | VIEW | | 1 | 590K| 584K|00:00:01.57 | 22022 | 0 | | | | | 7 | HASH UNIQUE | | 1 | 590K| 584K|00:00:01.42 | 22022 | 0 | 41M| 6322K| 32M (0)| |* 8 | TABLE ACCESS FULL | F_PTY_TABLE | 1 | 590K| 588K|00:00:00.57 | 22022 | 0 | | | | |* 9 | TABLE ACCESS FULL | F_EVT_SAVR_BIGTRANS | 1 | 421K| 815K|00:00:02.11 | 220K| 220K| | | | |* 10 | TABLE ACCESS FULL | F_AGT_SAVB_ACCTINFO_H | 1 | 3280K| 1172K|00:00:35.42 | 585K| 560K| | | | |* 11 | FILTER | | 55990 | | 54008 |00:00:09.14 | 335K| 0 | | | | |* 12 | CONNECT BY NO FILTERING WITH SW (UNIQUE)| | 55990 | | 369K|00:00:08.96 | 335K| 0 | | | | | 13 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 55990 | 82 | 4591K|00:00:02.17 | 335K| 0 | | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 1 - filter( IS NOT NULL) 2 - access("F_AGT_SAVB_ACCTINFO_H"."SUBJ_CD"="E"."SUBJ_CD" AND "E"."TERM"=TO_NUMBER("F_AGT_SAVB_ACCTINFO_H"."TERM") AND "E"."BUS_CODE"=TO_NUMBER("F_AGT_SAVB_ACCTINFO_H"."BUS_CODE")) 3 - filter("E"."SUBJ_CD" IS NOT NULL) 4 - access("F_EVT_SAVR_BIGTRANS"."EXT_ACCT_NO"="F_AGT_SAVB_ACCTINFO_H"."AGMT_ID" AND "F_EVT_SAVR_BIGTRANS"."ACCT_SEQNO"="F_AGT_SAVB_ACCTINFO_H"."ACCT_SEQNO") 5 - access("F_EVT_SAVR_BIGTRANS"."CUST_NO"="G"."PTY_ID") 8 - filter("END_DT"=TO_DATE(' 2999-12-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) 9 - filter(("TRANS_DATE">=TO_DATE(' 2013-12-03 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "TRANS_DATE"<=TO_DATE(' 2014-03-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))) 10 - filter(("END_DT">TO_DATE(' 2014-01-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "START_DT"<=TO_DATE(' 2014-01-05 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))) 11 - filter(("T"."ORG_ID"=:B1 AND "T"."STATUS"=1 AND "T"."DEPT_FLAG"<>'2')) 12 - access("T"."PARENT_ID"=PRIOR NULL) filter(TO_NUMBER("T"."ORG_ID")=10000) 58 rows selected.