|
有结果了,但是我还是没看明白,那位看懂了?
The unique index on container450 is part of the Nested Loop in step 5.
container450 has a estimation of 1 row. The large object
( output from NESTED LOOPS in step5 ) is distributed with a Robin Round Method
to the different slaves in step 5. See
| 5 | NESTED LOOPS | 6722 | 1549K| 31718 | | | 18,03 | P->P | HASH |
| 6 | NESTED LOOPS | 6722 | 1358K| 18274 | | | 18,00 | S->P | RND-ROBIN |
..
Now every slave in step5 has to check if the join condition is valid.
For this every slave needs the same information from container450.
That here the index container450 is accessed by every slave is forced by the NESTED LOOP.
SQL> explain plan for
2 SELECT /*+ USE_NL("A2") USE_NL("A4") USE_NL("A5") USE_NL("A7") */
3 "A6"."DESCRIPTION",
4 "A7"."OPERATIONID",
5 "A7"."MFGLINEID",
6 "A7"."PRODUCTTYPEID",
7 "A4"."CONTAINERNAME",
8 "A2"."RESOURCENAME",
9 "A5"."ROOTCAUSEGROUP",
10 "A3"."DESCRIPTION",
11 "A5"."DEALMETHOD",
12 to_date(:"SYS_B_0", :"SYS_B_1"),
13 to_date(:"SYS_B_2", :"SYS_B_3"),
14 SYSDATE@ !
15 FROM "B_TESTSERIALNUMBERHISTORY6" "A7",
16 "PRODUCTFAMILY" "A6",
17 "B_REPAIRHISTORY" "A5",
18 "CONTAINER" "A4",
19 "REPAIRCODEITEM" "A3",
20 "RESOURCEDEF" "A2"
21 WHERE "A7"."PRODUCTFAMILYID" = "A6"."PRODUCTFAMILYID"
22 AND "A5"."B_TESTSERIALNUMBERHISTORYID" =
23 "A7"."B_TESTSERIALNUMBERHISTORYID"
24 AND "A7"."HISTORYID" = "A4"."CONTAINERID"
25 AND "A7"."RESOURCEID" = "A2"."RESOURCEID"
26 AND "A5"."CURRENTREPAIRCODEID" = "A3"."REPAIRCODEITEMID"(+)
27 AND "A5"."STARTDATE" >= to_date(:"SYS_B_4", :"SYS_B_5")
28 AND "A5"."STARTDATE" < to_date(:"SYS_B_6", :"SYS_B_7")
29 /
Explained.
Elapsed: 00:00:00.00
SQL> /
PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost | Pstart| Pstop | TQ |IN-OUT| PQ Distrib |
-----------------------------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 6722 | 1903K| 31889 | | | | | |
|* 1 | FILTER | | | | | | | | | |
|* 2 | HASH JOIN | | 6722 | 1903K| 31889 | | | 18,04 | P->S | QC (RAND) |
| 3 | TABLE ACCESS FULL | PRODUCTFAMILY | 42 | 840 | 5 | | | 18,01 | S->P | BROADCAST |
|* 4 | HASH JOIN OUTER | | 6722 | 1772K| 31884 | | | 18,04 | PCWP | |
| 5 | NESTED LOOPS | | 6722 | 1549K| 31718 | | | 18,03 | P->P | HASH |
| 6 | NESTED LOOPS | | 6722 | 1358K| 18274 | | | 18,00 | S->P | RND-ROBIN |
| 7 | NESTED LOOPS | | 6722 | 1175K| 11552 | | | | | |
| 8 | TABLE ACCESS BY INDEX ROWID | B_REPAIRHISTORY | 6722 | 387K| 4830 | | | | | |
|* 9 | INDEX RANGE SCAN | B_REPAIRHISU4 | 12099 | | 38 | | | | | |
| 10 | TABLE ACCESS BY GLOBAL INDEX ROWID| B_TESTSERIALNUMBERHISTORY6 | 1 | 120 | 1 | ROWID | ROW L | | | |
|* 11 | INDEX UNIQUE SCAN | B_TESTSERIAL088667_T6 | 1 | | | | | | | |
| 12 | TABLE ACCESS BY INDEX ROWID | RESOURCEDEF | 1 | 28 | 1 | | | | | |
|* 13 | INDEX UNIQUE SCAN | RESOURCEDEF293 | 1 | | | | | | | |
| 14 | TABLE ACCESS BY INDEX ROWID | CONTAINER | 1 | 29 | 2 | | | 18,03 | PCWP | |
|* 15 | INDEX UNIQUE SCAN | CONTAINER450 | 1 | | 1 | | | 18,03 | PCWP | |
| 16 | TABLE ACCESS FULL | REPAIRCODEITEM | 262K| 8718K| 166 | | | 18,02 | S->P | HASH |
-----------------------------------------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(TO_DATE(:Z,:Z)<TO_DATE(:Z,:Z))
2 - access("A7"."PRODUCTFAMILYID"="A6"."PRODUCTFAMILYID")
4 - access("A5"."CURRENTREPAIRCODEID"="A3"."REPAIRCODEITEMID"(+))
9 - access("A5"."STARTDATE">=TO_DATE(:Z,:Z) AND "A5"."STARTDATE"<TO_DATE(:Z,:Z))
11 - access("A5"."B_TESTSERIALNUMBERHISTORYID"="A7"."B_TESTSERIALNUMBERHISTORYID")
13 - access("A7"."RESOURCEID"="A2"."RESOURCEID")
15 - access("A7"."HISTORYID"="A4"."CONTAINERID")
[ 本帖最后由 tiantianchifan 于 2011-5-13 16:36 编辑 ] |
|