with aa as
(select
a.agmt_id,
sum(c.acct_bal) as card_bal, --借记卡期末存款余额
a.card_open_org,
a.OPEN_DATE, -- 发卡日期
a.CARD_NEW_STATUS, -- 卡片状态
a.cust_magr, -- 客户经理号
a.cust_no, -- 客户号
a.corp_org
from dwf.f_agt_cadb_book_h a
left outer join (select agmt_id, acct_no
from dwf.f_agt_cadb_acct
where substr(acct_status, 8, 1) <> '2') b
on a.master_card_no = b.agmt_id
left outer join (select agmt_id, max(last_trans_date) last_trans_date, sum(acct_bal) acct_bal
from dwf.F_AGT_SAVB_ACCTINFO_H
where start_dt <= to_date('2014-03-31', 'YYYY-MM-DD')
and end_dt > to_date('2014-03-31', 'YYYY-MM-DD')
and acct_status <> '1'
group by agmt_id ) c -- 一卡多账号,某一账号睡眠其它未睡 ,卡账务信息表最后交易日期不准
on b.acct_no = c.agmt_id
where substr(a.host_card_status, 8, 1) = '0' --卡状态不为注销
and a.master_card_no is not null --剔除待领卡
and a.start_dt <= to_date('2014-03-31', 'YYYY-MM-DD') /*参数传入 季末日期*/
and a.end_dt > to_date('2014-03-31', 'YYYY-MM-DD') /*参数传入 季末日期*/
and c.LAST_TRANS_DATE < to_date( '2014-03-01', 'YYYY-MM-DD') /*参数传入 季末日期*/
and c.acct_bal is not null
group by a.agmt_id,
a.card_open_org,
a.OPEN_DATE, -- 发卡日期
a.CARD_NEW_STATUS, -- 卡片状态
a.cust_magr, -- 客户经理号
a.cust_no, -- 客户号
a.corp_org
having(sum(c.acct_bal) < 10)),
bb as
(SELECT xx.tran_card_no, count(1) cnt, max(xx.trans_date) max_date
FROM DWF.F_EVT_CADJ_JOUR xx
WHERE TRANS_DATE <= to_date('2014-03-31', 'YYYY-MM-DD')
group by xx.tran_card_no)
select aa.agmt_id, -- 卡号
'J' AS CARD_T, -- 卡种类
f.pty_name, -- 客户姓名
aa.cust_no, -- 客户证件号
f.mobile_no, -- 客户手机号
aa.OPEN_DATE, -- 发卡日期
null as ACTIVEDAY, -- 激活日期
aa.CARD_NEW_STATUS, -- 卡片状态
to_date('2014-03-31', 'YYYY-MM-DD') - nvl(bb.MAX_DATE, aa.OPEN_DATE) as sleep_day, -- 睡眠时间
card_bal, -- 存款余额
null as cred_limit, -- 授信额度
bb.cnt, -- 交易次数
aa.cust_magr, -- 客户经理号
xx.emp_name, -- 客户经理名称
aa.card_open_org, -- 所属机构
bb.MAX_DATE
from aa
left join bb
on aa.agmt_id = bb.tran_card_no
LEFT JOIN dwm.v_m_pty_emp_info xx --员工表
ON aa.cust_magr = xx.pty_id
AND xx.start_dt <= to_date('2014-03-31', 'YYYY-MM-DD')
AND xx.end_dt > to_date('2014-03-31', 'YYYY-MM-DD')
LEFT JOIN dwf.f_pty_table f --当事人主表
ON aa.cust_no = f.pty_id
AND aa.corp_org = f.corp_org
AND f.start_dt <= to_date('2014-03-31', 'YYYY-MM-DD')
AND f.end_dt > to_date('2014-03-31', 'YYYY-MM-DD')
where bb.MAX_DATE < to_date( '2014-03-01', 'YYYY-MM-DD')
and aa.card_open_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) ; 这SQL跑了半天也没出结果,看下执行计划:
select * from table(dbms_xplan.display());
Plan hash value: 4046975539 -------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 21 | 5040 | 267K (2)| 00:53:36 |
| 1 | NESTED LOOPS OUTER | | 21 | 5040 | 267K (2)| 00:53:36 |
| 2 | NESTED LOOPS OUTER | | 6 | 1266 | 267K (2)| 00:53:36 |
|* 3 | HASH JOIN | | 6 | 900 | 267K (2)| 00:53:36 |
|* 4 | HASH JOIN | | 6 | 660 | 179K (2)| 00:35:56 |
| 5 | VIEW | VW_NSO_1 | 6 | 162 | 4 (25)| 00:00:01 |
| 6 | HASH UNIQUE | | 6 | 294 | 4 (25)| 00:00:01 |
|* 7 | FILTER | | | | | |
|* 8 | CONNECT BY NO FILTERING WITH SW (UNIQUE)| | | | | |
| 9 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 144 | 2880 | 3 (0)| 00:00:01 |
| 10 | VIEW | | 28 | 2324 | 179K (2)| 00:35:56 |
|* 11 | FILTER | | | | | |
| 12 | HASH GROUP BY | | 28 | 5908 | 179K (2)| 00:35:56 |
|* 13 | HASH JOIN | | 552 | 113K| 179K (2)| 00:35:56 |
|* 14 | HASH JOIN | | 2835 | 260K| 110K (3)| 00:22:10 |
| 15 | VIEW | | 2805 | 117K| 107K (3)| 00:21:32 |
|* 16 | FILTER | | | | | |
| 17 | HASH GROUP BY | | 2805 | 142K| 107K (3)| 00:21:32 |
|* 18 | TABLE ACCESS FULL | F_AGT_SAVB_ACCTINFO_H | 8624K| 427M| 107K (2)| 00:21:25 |
|* 19 | TABLE ACCESS FULL | F_AGT_CADB_ACCT | 38498 | 1917K| 3128 (1)| 00:00:38 |
|* 20 | TABLE ACCESS FULL | F_AGT_CADB_BOOK_H | 61287 | 7002K| 68898 (2)| 00:13:47 |
| 21 | VIEW | | 13290 | 519K| 88273 (2)| 00:17:40 |
|* 22 | FILTER | | | | | |
| 23 | HASH GROUP BY | | 13290 | 337K| 88273 (2)| 00:17:40 |
|* 24 | TABLE ACCESS FULL | F_EVT_CADJ_JOUR | 12M| 298M| 87422 (1)| 00:17:30 |
|* 25 | TABLE ACCESS BY INDEX ROWID | F_PTY_TABLE | 1 | 61 | 3 (0)| 00:00:01 |
|* 26 | INDEX RANGE SCAN | SYS_C0061472 | 1 | | 2 (0)| 00:00:01 |
| 27 | VIEW PUSHED PREDICATE | V_M_PTY_EMP_INFO | 3 | 87 | 4 (0)| 00:00:01 |
|* 28 | HASH JOIN OUTER | | 3 | 153 | 122 (2)| 00:00:02 |
|* 29 | TABLE ACCESS BY INDEX ROWID | F_PTY_EMP_INFO | 3 | 99 | 4 (0)| 00:00:01 |
|* 30 | INDEX RANGE SCAN | EMP_IDX_002 | 3 | | 1 (0)| 00:00:01 |
|* 31 | VIEW | | 24404 | 428K| 118 (2)| 00:00:02 |
|* 32 | HASH JOIN RIGHT OUTER | | 24404 | 1406K| 118 (2)| 00:00:02 |
|* 33 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 36 | 504 | 3 (0)| 00:00:01 |
|* 34 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 1 | 11 | 3 (0)| 00:00:01 |
| 35 | VIEW | | 24404 | 1072K| 115 (2)| 00:00:02 |
|* 36 | HASH JOIN RIGHT OUTER | | 24404 | 2049K| 115 (2)| 00:00:02 |
|* 37 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 36 | 504 | 3 (0)| 00:00:01 |
|* 38 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 1 | 11 | 3 (0)| 00:00:01 |
| 39 | VIEW | | 24404 | 1715K| 111 (1)| 00:00:02 |
|* 40 | HASH JOIN RIGHT OUTER | | 24404 | 1882K| 111 (1)| 00:00:02 |
|* 41 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 36 | 504 | 3 (0)| 00:00:01 |
|* 42 | HASH JOIN RIGHT OUTER | | 24404 | 1549K| 108 (1)| 00:00:02 |
| 43 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 144 | 1008 | 3 (0)| 00:00:01 |
|* 44 | HASH JOIN RIGHT OUTER | | 24404 | 1382K| 105 (1)| 00:00:02 |
| 45 | VIEW | M_CBS_TO_DW_ORG | 141 | 4794 | 8 (0)| 00:00:01 |
| 46 | UNION-ALL | | | | | |
|* 47 | TABLE ACCESS FULL | F_PTY_ORG | 127 | 2794 | 5 (0)| 00:00:01 |
|* 48 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 14 | 98 | 3 (0)| 00:00:01 |
|* 49 | TABLE ACCESS FULL | F_PTY_EMP_INFO | 24404 | 571K| 97 (2)| 00:00:02 |
------------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 3 - access("AA"."AGMT_ID"="BB"."TRAN_CARD_NO")
4 - access("AA"."CARD_OPEN_ORG"="ORG_ID")
7 - filter("T"."STATUS"=1 AND "T"."DEPT_FLAG"<>'2')
8 - access("T"."PARENT_ID"=PRIOR "T"."ID")
filter(TO_NUMBER("T"."ORG_ID")=10000)
11 - filter(SUM("C"."ACCT_BAL")<10)
13 - access("A"."MASTER_CARD_NO"="AGMT_ID")
14 - access("ACCT_NO"="C"."AGMT_ID")
16 - filter(MAX("LAST_TRANS_DATE")<TO_DATE(' 2014-03-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
SUM("ACCT_BAL") IS NOT NULL)
18 - filter("ACCT_STATUS"<>'1' AND "END_DT">TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"START_DT"<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
19 - filter(SUBSTR("ACCT_STATUS",8,1)<>'2')
20 - filter(SUBSTR("A"."HOST_CARD_STATUS",8,1)='0' AND "A"."MASTER_CARD_NO" IS NOT NULL AND
"A"."END_DT">TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "A"."START_DT"<=TO_DATE(' 2014-03-31
00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
22 - filter(MAX("XX"."TRANS_DATE")<TO_DATE(' 2014-03-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
24 - filter("TRANS_DATE"<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
25 - filter("F"."END_DT"(+)>TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
26 - access("AA"."CUST_NO"="F"."PTY_ID"(+) AND "AA"."CORP_ORG"="F"."CORP_ORG"(+) AND
"F"."START_DT"(+)<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
filter("F"."START_DT"(+)<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"AA"."CORP_ORG"="F"."CORP_ORG"(+))
28 - access("T"."START_DT"="B"."START_DT"(+) AND "T"."SOURCE_CODE"="B"."SOURCE_CODE"(+) AND
"T"."PTY_ID"="B"."PTY_ID"(+))
29 - filter("T"."END_DT">TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"T"."START_DT"<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
30 - access("T"."PTY_ID"="AA"."CUST_MAGR")
31 - filter("B"."PTY_ID"(+)="AA"."CUST_MAGR" AND "B"."START_DT"(+)<=TO_DATE(' 2014-03-31 00:00:00',
'syyyy-mm-dd hh24:mi:ss'))
32 - access("FST"."SEC_ORG_ID"="ORG_ID"(+))
33 - filter("ORG_LEVEL"(+)=2)
34 - filter("ID"=:B1)
36 - access("ORG_ID"(+)=NVL("SEC"."THD_ORG_ID","SEC"."ORG_ID"))
37 - filter("ORG_LEVEL"(+)=3)
38 - filter("ID"=:B1)
40 - access("C"."ORG_ID"="ORG_ID"(+))
41 - filter("ORG_LEVEL"(+)=4)
42 - access("B"."ORG_ID"="C"."ORG_ID"(+))
44 - access("A"."ORG_NO"="B"."PTY_ID"(+))
47 - filter("END_DT"=TO_DATE(' 2999-12-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
48 - filter("ORG_ID" LIKE '%8888%' AND "ORG_ID" IS NOT NULL AND "ORG_ID" IS NOT NULL OR "ORG_ID" LIKE '%9999%'
AND "ORG_ID" IS NOT NULL AND "ORG_ID" IS NOT NULL)
49 - filter("A"."START_DT"<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) 看到了| 27 | VIEW PUSHED PREDICATE | V_M_PTY_EMP_INFO | 3 | 87 | 4 (0)| 00:00:01 | 谓词推入 而且作为NL的被驱动表 首先HASH 一把
同时看了下表大小情况:
SQL> WITH t
AS (SELECT /*+ materialize */
DISTINCT OBJECT_OWNER, OBJECT_NAME
FROM (SELECT OBJECT_OWNER, OBJECT_NAME
FROM V$SQL_PLAN
WHERE SQL_ID = '2pfsvyamsk6yf' AND OBJECT_NAME IS NOT NULL
UNION ALL
SELECT OBJECT_OWNER, OBJECT_NAME
FROM DBA_HIST_SQL_PLAN
WHERE SQL_ID = '2pfsvyamsk6yf' AND OBJECT_NAME IS NOT NULL))
SELECT a.owner,
a.segment_name,
a.segment_size as MB,
TRUNC (a.segment_size / 8) block_count
FROM ( SELECT owner, segment_name , TRUNC (SUM (bytes) / 1024/1024) segment_size
FROM dba_segments
WHERE /* segment_type LIKE 'TABLE%'
AND*/ (OWNER, segment_name) IN
(SELECT table_owner, table_name
FROM dba_indexes
WHERE (owner, index_name) IN (SELECT * FROM t)
UNION ALL
SELECT * FROM t)
GROUP BY (owner, segment_name)) a; 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 OWNER SEGMENT_NAME MB BLOCK_COUNT
------------------------------ --------------------------------------------------------------------------------- ---------- -----------
DWF F_AGT_SAVB_ACCTINFO_H 4121 515
DWF F_PTY_TABLE 176 22
DWM B_M_SYS_BRANCH 0 0
DWF F_AGT_CADB_BOOK_H 2739 342
DWF F_AGT_CADB_BOOK_H_IDX1 152 19
DWF F_AGT_CADB_ACCT 128 16
DWF F_PTY_ORG 0 0
DWF F_PTY_EMP_INFO 4 0
DWF F_EVT_CADJ_JOUR 3455 431 9 rows selected. 创建如下索引;
SELECT xx.tran_card_no, count(1) cnt, max(xx.trans_date) max_date
FROM DWF.F_EVT_CADJ_JOUR xx
WHERE TRANS_DATE <= to_date('2014-03-31', 'YYYY-MM-DD')
group by xx.tran_card_no; SQL> create index F_EVT_CADJ_JOUR_IDX1 on F_EVT_CADJ_JOUR(tran_card_no,trans_date); Index created. select agmt_id, max(last_trans_date) last_trans_date, sum(acct_bal) acct_bal
from dwf.F_AGT_SAVB_ACCTINFO_H
where start_dt <= to_date('2014-03-31', 'YYYY-MM-DD')
and end_dt > to_date('2014-03-31', 'YYYY-MM-DD')
and acct_status <> '1'
group by agmt_id create index F_AGT_SAVB_ACCTINFO_H_idx4 on F_AGT_SAVB_ACCTINFO_H(agmt_id,last_trans_date,acct_bal,start_dt,end_dt,acct_status); 同时去掉谓词推入:
with aa as
(select a.agmt_id,
sum(c.acct_bal) as card_bal, --借记卡期末存款余额
a.card_open_org,
a.OPEN_DATE, -- 发卡日期
a.CARD_NEW_STATUS, -- 卡片状态
a.cust_magr, -- 客户经理号
a.cust_no, -- 客户号
a.corp_org
from dwf.f_agt_cadb_book_h a
left outer join (select agmt_id, acct_no
from dwf.f_agt_cadb_acct
where substr(acct_status, 8, 1) <> '2') b
on a.master_card_no = b.agmt_id left outer join (select agmt_id, max(last_trans_date) last_trans_date, sum(acct_bal) acct_bal
from dwf.F_AGT_SAVB_ACCTINFO_H
where start_dt <= to_date('2014-03-31', 'YYYY-MM-DD')
and end_dt > to_date('2014-03-31', 'YYYY-MM-DD')
and acct_status <> '1'
group by agmt_id ) c -- 一卡多账号,某一账号睡眠其它未睡 ,卡账务信息表最后交易日期不准
on b.acct_no = c.agmt_id
where substr(a.host_card_status, 8, 1) = '0' --卡状态不为注销
and a.master_card_no is not null --剔除待领卡
and a.start_dt <= to_date('2014-03-31', 'YYYY-MM-DD') /*参数传入 季末日期*/
and a.end_dt > to_date('2014-03-31', 'YYYY-MM-DD') /*参数传入 季末日期*/
and c.LAST_TRANS_DATE < to_date( '2014-03-01', 'YYYY-MM-DD') /*参数传入 季末日期*/
and c.acct_bal is not null
group by a.agmt_id,
a.card_open_org,
a.OPEN_DATE, -- 发卡日期
a.CARD_NEW_STATUS, -- 卡片状态
a.cust_magr, -- 客户经理号
a.cust_no, -- 客户号
a.corp_org
having(sum(c.acct_bal) < 10)),
bb as
(SELECT xx.tran_card_no, count(1) cnt, max(xx.trans_date) max_date
FROM DWF.F_EVT_CADJ_JOUR xx
WHERE TRANS_DATE <= to_date('2014-03-31', 'YYYY-MM-DD')
group by xx.tran_card_no)
select /*+ use_hash(AA XX) use_hash(AA F) */ aa.agmt_id, -- 卡号
'J' AS CARD_T, -- 卡种类
f.pty_name, -- 客户姓名
aa.cust_no, -- 客户证件号
f.mobile_no, -- 客户手机号
aa.OPEN_DATE, -- 发卡日期
null as ACTIVEDAY, -- 激活日期
aa.CARD_NEW_STATUS, -- 卡片状态
to_date('2014-03-31', 'YYYY-MM-DD') - nvl(bb.MAX_DATE, aa.OPEN_DATE) as sleep_day, -- 睡眠时间
card_bal, -- 存款余额
null as cred_limit, -- 授信额度
bb.cnt, -- 交易次数
aa.cust_magr, -- 客户经理号
xx.emp_name, -- 客户经理名称
aa.card_open_org, -- 所属机构
bb.MAX_DATE
from aa
left join bb
on aa.agmt_id = bb.tran_card_no
LEFT JOIN dwm.v_m_pty_emp_info xx --员工表
ON aa.cust_magr = xx.pty_id
AND xx.start_dt <= to_date('2014-03-31', 'YYYY-MM-DD')
AND xx.end_dt > to_date('2014-03-31', 'YYYY-MM-DD')
LEFT JOIN dwf.f_pty_table f --当事人主表
ON aa.cust_no = f.pty_id
AND aa.corp_org = f.corp_org
AND f.start_dt <= to_date('2014-03-31', 'YYYY-MM-DD')
AND f.end_dt > to_date('2014-03-31', 'YYYY-MM-DD')
where bb.MAX_DATE < to_date( '2014-03-01', 'YYYY-MM-DD')
and aa.card_open_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) ; Plan hash value: 2910718243 ------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 266 | 156K (1)| 00:31:14 |
|* 1 | HASH JOIN OUTER | | 1 | 266 | 156K (1)| 00:31:14 |
|* 2 | HASH JOIN | | 1 | 206 | 150K (1)| 00:30:01 |
|* 3 | HASH JOIN OUTER | | 1 | 166 | 131K (1)| 00:26:18 |
|* 4 | HASH JOIN | | 1 | 110 | 131K (1)| 00:26:14 |
| 5 | VIEW | | 1 | 83 | 131K (1)| 00:26:14 |
|* 6 | FILTER | | | | | |
| 7 | HASH GROUP BY | | 1 | 211 | 131K (1)| 00:26:14 |
|* 8 | HASH JOIN | | 27 | 5697 | 131K (1)| 00:26:14 |
|* 9 | HASH JOIN | | 1764 | 161K| 37890 (1)| 00:07:35 |
| 10 | VIEW | | 1746 | 75078 | 33702 (1)| 00:06:45 |
|* 11 | FILTER | | | | | |
| 12 | HASH GROUP BY | | 1746 | 90792 | 33702 (1)| 00:06:45 |
|* 13 | INDEX FAST FULL SCAN | F_AGT_SAVB_ACCTINFO_H_IDX4 | 1010K| 50M| 33677 (1)| 00:06:45 |
|* 14 | TABLE ACCESS FULL | F_AGT_CADB_ACCT | 41918 | 2087K| 4188 (1)| 00:00:51 |
|* 15 | TABLE ACCESS FULL | F_AGT_CADB_BOOK_H | 5278 | 603K| 93269 (1)| 00:18:40 |
| 16 | VIEW | VW_NSO_1 | 6 | 162 | 4 (25)| 00:00:01 |
| 17 | HASH UNIQUE | | 6 | 294 | 4 (25)| 00:00:01 |
|* 18 | FILTER | | | | | |
|* 19 | CONNECT BY NO FILTERING WITH SW (UNIQUE)| | | | | |
| 20 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 147 | 2940 | 3 (0)| 00:00:01 |
| 21 | VIEW | V_M_PTY_EMP_INFO | 7356 | 402K| 275 (1)| 00:00:04 |
|* 22 | HASH JOIN OUTER | | 7356 | 366K| 275 (1)| 00:00:04 |
|* 23 | TABLE ACCESS FULL | F_PTY_EMP_INFO | 7337 | 236K| 128 (1)| 00:00:02 |
| 24 | VIEW | | 25885 | 455K| 148 (1)| 00:00:02 |
|* 25 | HASH JOIN RIGHT OUTER | | 25885 | 1491K| 148 (1)| 00:00:02 |
|* 26 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 23 | 322 | 3 (0)| 00:00:01 |
|* 27 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 1 | 11 | 3 (0)| 00:00:01 |
| 28 | VIEW | | 25885 | 1137K| 145 (1)| 00:00:02 |
|* 29 | HASH JOIN RIGHT OUTER | | 25885 | 2173K| 145 (1)| 00:00:02 |
|* 30 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 109 | 1526 | 3 (0)| 00:00:01 |
|* 31 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 1 | 11 | 3 (0)| 00:00:01 |
| 32 | VIEW | | 25885 | 1820K| 142 (1)| 00:00:02 |
|* 33 | HASH JOIN RIGHT OUTER | | 25885 | 1996K| 142 (1)| 00:00:02 |
|* 34 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 12 | 168 | 3 (0)| 00:00:01 |
|* 35 | HASH JOIN RIGHT OUTER | | 25885 | 1643K| 138 (0)| 00:00:02 |
| 36 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 147 | 1029 | 3 (0)| 00:00:01 |
|* 37 | HASH JOIN RIGHT OUTER | | 25885 | 1466K| 135 (0)| 00:00:02 |
| 38 | VIEW | M_CBS_TO_DW_ORG | 143 | 4862 | 8 (0)| 00:00:01 |
| 39 | UNION-ALL | | | | | |
|* 40 | TABLE ACCESS FULL | F_PTY_ORG | 129 | 2838 | 5 (0)| 00:00:01 |
|* 41 | TABLE ACCESS FULL | B_M_SYS_BRANCH | 14 | 98 | 3 (0)| 00:00:01 |
|* 42 | TABLE ACCESS FULL | F_PTY_EMP_INFO | 25885 | 606K| 127 (0)| 00:00:02 |
| 43 | VIEW | | 14370 | 561K| 18634 (3)| 00:03:44 |
|* 44 | FILTER | | | | | |
| 45 | HASH GROUP BY | | 14370 | 364K| 18634 (3)| 00:03:44 |
|* 46 | INDEX FAST FULL SCAN | F_EVT_CADJ_JOUR_IDX1 | 13M| 328M| 18250 (1)| 00:03:40 |
|* 47 | TABLE ACCESS FULL | F_PTY_TABLE | 589K| 33M| 6033 (1)| 00:01:13 |
------------------------------------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id):
--------------------------------------------------- 1 - access("AA"."CORP_ORG"="F"."CORP_ORG"(+) AND "AA"."CUST_NO"="F"."PTY_ID"(+))
2 - access("AA"."AGMT_ID"="BB"."TRAN_CARD_NO")
3 - access("AA"."CUST_MAGR"="XX"."PTY_ID"(+))
4 - access("AA"."CARD_OPEN_ORG"="ORG_ID")
6 - filter(SUM("C"."ACCT_BAL")<10)
8 - access("A"."MASTER_CARD_NO"="AGMT_ID")
9 - access("ACCT_NO"="C"."AGMT_ID")
11 - filter(MAX("LAST_TRANS_DATE")<TO_DATE(' 2014-03-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND SUM("ACCT_BAL") IS
NOT NULL)
13 - filter("END_DT">TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "ACCT_STATUS"<>'1' AND
"START_DT"<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
14 - filter(SUBSTR("ACCT_STATUS",8,1)<>'2')
15 - filter("A"."END_DT">TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
SUBSTR("A"."HOST_CARD_STATUS",8,1)='0' AND "A"."MASTER_CARD_NO" IS NOT NULL AND "A"."START_DT"<=TO_DATE(' 2014-03-31
00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
18 - filter("T"."STATUS"=1 AND "T"."DEPT_FLAG"<>'2')
19 - access("T"."PARENT_ID"=PRIOR "T"."ID")
filter(TO_NUMBER("T"."ORG_ID")=10000)
22 - access("T"."START_DT"="B"."START_DT"(+) AND "T"."SOURCE_CODE"="B"."SOURCE_CODE"(+) AND
"T"."PTY_ID"="B"."PTY_ID"(+))
23 - filter("T"."END_DT">TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND "T"."START_DT"<=TO_DATE('
2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
25 - access("FST"."SEC_ORG_ID"="ORG_ID"(+))
26 - filter("ORG_LEVEL"(+)=2)
27 - filter("ID"=:B1)
29 - access("ORG_ID"(+)=NVL("SEC"."THD_ORG_ID","SEC"."ORG_ID"))
30 - filter("ORG_LEVEL"(+)=3)
31 - filter("ID"=:B1)
33 - access("C"."ORG_ID"="ORG_ID"(+))
34 - filter("ORG_LEVEL"(+)=4)
35 - access("B"."ORG_ID"="C"."ORG_ID"(+))
37 - access("A"."ORG_NO"="B"."PTY_ID"(+))
40 - filter("END_DT"=TO_DATE(' 2999-12-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
41 - filter("ORG_ID" LIKE '%8888%' AND "ORG_ID" IS NOT NULL AND "ORG_ID" IS NOT NULL OR "ORG_ID" LIKE '%9999%' AND
"ORG_ID" IS NOT NULL AND "ORG_ID" IS NOT NULL)
42 - filter("A"."START_DT"<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
44 - filter(MAX("XX"."TRANS_DATE")<TO_DATE(' 2014-03-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
46 - filter("TRANS_DATE"<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
47 - filter("F"."END_DT"(+)>TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"F"."START_DT"(+)<=TO_DATE(' 2014-03-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss')) 最终SQL16S左右就出结果