SELECT DISTINCT C_FUNDACCO
FROM TACCOINFO
WHERE C_CUSTNO =
(SELECT DISTINCT C_CUSTNO
FROM TACCOINFO
WHERE C_FUNDACCO = '101001254712')
-------执行计划如下:--
SELECT STATEMENT, GOAL = CHOOSE 122004 9111806 309801404
HASH UNIQUE 122004 9111806 309801404
VIEW CUSTOMER TACCOINFO 38733 9111806 309801404
UNION-ALL
HASH JOIN 26072 4555903 141232993
INDEX FAST FULL SCAN FGCRM PK1_1 2004 3960936 23765616
PARTITION RANGE ALL 12625 4555903 113897575
TABLE ACCESS FULL FGCRM CRM_ACCOINFO 12625 4555903 113897575
HASH JOIN 12661 4555903 136677090
INDEX FAST FULL SCAN FGCRM PK1_2 6 9368 46840
PARTITION RANGE ALL 12625 4555903 113897575
TABLE ACCESS FULL FGCRM CRM_ACCOINFO 12625 4555903 113897575
HASH UNIQUE 10 2 68
VIEW CUSTOMER TACCOINFO 9 2 68
UNION-ALL
NESTED LOOPS 5 1 31
TABLE ACCESS BY GLOBAL INDEX ROWID FGCRM CRM_ACCOINFO 3 1 25
INDEX UNIQUE SCAN FGCRM ACCOINFO_FUNDACCO_PARTITION 2 1
INDEX RANGE SCAN FGCRM FGCRM_PERSONAL_CUST_TOCHAR 2 1 6
NESTED LOOPS 4 1 30
TABLE ACCESS BY GLOBAL INDEX ROWID FGCRM CRM_ACCOINFO 3 1 25
INDEX UNIQUE SCAN FGCRM ACCOINFO_FUNDACCO_PARTITION 2 1
INDEX RANGE SCAN FGCRM FGCRM_ORG_CUST_TOCHAR 1 1 5
但是, 通过
SELECT DISTINCT C_CUSTNO
FROM TACCOINFO
WHERE C_FUNDACCO = '101001254712' 查出 C_CUSTNO 为,再通过
SELECT DISTINCT C_FUNDACCO
FROM TACCOINFO
WHERE C_CUSTNO ='777482'
--执行计划如下
SELECT STATEMENT, GOAL = CHOOSE 57 2 68
HASH UNIQUE 57 2 68
VIEW CUSTOMER TACCOINFO 56 2 68
UNION-ALL
NESTED LOOPS 29 1 31
INDEX RANGE SCAN FGCRM FGCRM_PERSONAL_CUST_TOCHAR 3 1 6
PARTITION RANGE ALL 26 1 25
TABLE ACCESS BY LOCAL INDEX ROWID FGCRM CRM_ACCOINFO 26 1 25
INDEX RANGE SCAN FGCRM ACCOINFO_CHAR_CUSTID_PARTITION 12 27
NESTED LOOPS 27 1 30
INDEX RANGE SCAN FGCRM FGCRM_ORG_CUST_TOCHAR 1 1 5
PARTITION RANGE ALL 26 1 25
TABLE ACCESS BY LOCAL INDEX ROWID FGCRM CRM_ACCOINFO 26 1 25
INDEX RANGE SCAN FGCRM ACCOINFO_CHAR_CUSTID_PARTITION 12 28
执行结果不一样
需求有点像 scott 中,已知一员工姓名,查该员工所在部门的所有员工
使用PRECOMPUTE_SUBQUERY hint :
SELECT DISTINCT C_FUNDACCO
FROM TACCOINFO
WHERE C_CUSTNO =
(SELECT /*+ PRECOMPUTE_SUBQUERY */ DISTINCT C_CUSTNO
FROM TACCOINFO
WHERE C_FUNDACCO = '101001254712')
try:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13165828/viewspace-605249/ ,如需转载,请注明出处,否则将追究法律责任。