|
请教一个sql优化问题,版本:10.2.0.4.0 , RECEPTION一直走全表,使用NO_EXPAND提示没什么效果,请大家帮忙看看怎么优化!
select *
from RECEPTION A
where (A.RECORGID = :ORGID or
A.RECORGID in (select ORGID
from ORGANIZATION B
where exists (select 1
from ORGANIZATION_CHILD
where SUBWAYID = B.ORGID
and PARWAYID = :ORGID)))
and A.RECDATE between :SDATE and :EDATE
and A.REGION = 311
and (A.ISBACKPROCESS <> 1 or A.ISBACKPROCESS is null)
and ROWNUM < :ROWNUMBER
order by oid;
Plan hash value: 2299894236
--------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | Pstart| Pstop |
--------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 5234 | 1139K| | 2290K (3)| 04:29:04 | | |
|* 1 | FILTER | | | | | | | | |
| 2 | SORT ORDER BY | | 5234 | 1139K| 62M| 2290K (3)| 04:29:04 | | |
|* 3 | COUNT STOPKEY | | | | | | | | |
|* 4 | FILTER | | | | | | | | |
| 5 | PARTITION RANGE ITERATOR| | 104K| 22M| | 2286K (3)| 04:28:33 | KEY | KEY |
|* 6 | TABLE ACCESS FULL | RECEPTION | 104K| 22M| | 2286K (3)| 04:28:33 | KEY | KEY |
| 7 | NESTED LOOPS | | 1 | 44 | | 3 (0)| 00:00:01 | | |
|* 8 | INDEX UNIQUE SCAN | PK_T_UCP_ORGAINFO | 1 | 17 | | 2 (0)| 00:00:01 | | |
|* 9 | INDEX UNIQUE SCAN | PK_UCP_ORGACHILD | 1 | 27 | | 1 (0)| 00:00:01 | | |
--------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(TO_DATE(:SDATE)<=TO_DATE(:EDATE))
3 - filter(ROWNUM<TO_NUMBER(:ROWNUMBER))
4 - filter("A"."RECORGID"=:ORGID OR EXISTS (SELECT /*+ */ 0 FROM "COMMON"."T_UCP_ORGAINFO"
"ORG","COMMON"."T_UCP_ORGACHILD" "ORGANIZATION_CHILD" WHERE "SUBWAYID"=:B1 AND "PARWAYID"=:ORGID AND
"ORG"."ORGAID"=:B2))
6 - filter("A"."REGION"=311 AND ("A"."ISBACKPROCESS"<>1 OR "A"."ISBACKPROCESS" IS NULL) AND
"A"."RECDATE">=:SDATE AND "A"."RECDATE"<=:EDATE)
8 - access("ORG"."ORGAID"=:B1)
9 - access("PARWAYID"=:ORGID AND "SUBWAYID"=:B1) |
|