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.