|
-
Here are the plans, can you throw light on these if you find something ?
SQL> SELECT PC.ProjectCode_Item_Code
2 FROM mwebProjectCode PC , mwebWork W
3 WHERE w.Work_Entity_Type(+) = 3
4 AND w.Work_ID(+) <> 2531
5 AND W.Work_Item_Code(+)= PC.ProjectCode_Item_Code
6 AND W.Work_Level(+)= 6
7 AND W.Work_Item_Code IS NULL
8 ORDER BY ProjectCode_Item_Code ;
45 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (ORDER BY)
2 1 FILTER
3 2 NESTED LOOPS (OUTER)
4 3 TABLE ACCESS (FULL) OF 'MWEBPROJECTCODE'
5 3 TABLE ACCESS (BY INDEX ROWID) OF 'MWEBWORK'
6 5 AND-EQUAL
7 6 INDEX (RANGE SCAN) OF 'IX_WORK_ENTITY' (NON-UNIQ
UE)
8 6 INDEX (RANGE SCAN) OF 'IX_WORK_LEVEL' (NON-UNIQU
E)
Statistics
----------------------------------------------------------
0 recursive calls
3 db block gets
170444 consistent gets
0 physical reads
0 redo size
1251 bytes sent via SQL*Net to client
1110 bytes received via SQL*Net from client
6 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
45 rows processed
SQL>
SQL>
SQL> Select ProjectCode_Item_Code
2 FROM mwebProjectCode
3 MINUS
4 SELECT Work_Item_Code
5 FROM mwebWork
6 WHERE Work_Entity_Type = 3
7 AND Work_ID <> 2531
8 AND Work_Level= 6
9 order by ProjectCode_Item_Code ;
45 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 MINUS
2 1 SORT (UNIQUE)
3 2 TABLE ACCESS (FULL) OF 'MWEBPROJECTCODE'
4 1 SORT (UNIQUE)
5 4 TABLE ACCESS (BY INDEX ROWID) OF 'MWEBWORK'
6 5 AND-EQUAL
7 6 INDEX (RANGE SCAN) OF 'IX_WORK_ENTITY' (NON-UNIQUE
)
8 6 INDEX (RANGE SCAN) OF 'IX_WORK_LEVEL' (NON-UNIQUE)
Statistics
----------------------------------------------------------
0 recursive calls
3 db block gets
418 consistent gets
0 physical reads
0 redo size
1251 bytes sent via SQL*Net to client
1040 bytes received via SQL*Net from client
6 SQL*Net roundtrips to/from client
3 sorts (memory)
0 sorts (disk)
45 rows processed
I even tried this:
------------------
SQL> SELECT ProjectCode_Item_Code
2 FROM mwebProjectCode
3 WHERE ProjectCode_Item_Code
4 NOT IN(select distinct Work_Item_Code from mwebWork where Work_Level=6
5 and Work_Entity_Type=3
6 and Work_ID <> 2531)
7 ORDER BY ProjectCode_Item_Code;
45 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (ORDER BY)
2 1 FILTER
3 2 TABLE ACCESS (FULL) OF 'MWEBPROJECTCODE'
4 2 TABLE ACCESS (BY INDEX ROWID) OF 'MWEBWORK'
5 4 AND-EQUAL
6 5 INDEX (RANGE SCAN) OF 'IX_WORK_LEVEL' (NON-UNIQUE)
7 5 INDEX (RANGE SCAN) OF 'IX_WORK_ENTITY' (NON-UNIQUE
)
Statistics
----------------------------------------------------------
264 recursive calls
4 db block gets
94842 consistent gets
266 physical reads
0 redo size
1249 bytes sent via SQL*Net to client
1081 bytes received via SQL*Net from client
6 SQL*Net roundtrips to/from client
8 sorts (memory)
0 sorts (disk)
45 rows processed
Original one:
Parse 0.05 (Elapsed) 0.00 (CPU)
Execute/Fetch 6.50 (Elapsed) 0.00 (CPU)
Total 6.55 0.00
SQL>
SQL>
SQL> SELECT ProjectCode_Item_Code
2 FROM mwebProjectCode
3 WHERE NOT EXISTS(select work_id from mwebWork where Work_Level=6 and Work_Entity_Type=3
4 and Work_Item_Code=ProjectCode_Item_Code and Work_ID <> 2531)
5 ORDER BY ProjectCode_Item_Code;
45 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 SORT (ORDER BY)
2 1 FILTER
3 2 TABLE ACCESS (FULL) OF 'MWEBPROJECTCODE'
4 2 TABLE ACCESS (BY INDEX ROWID) OF 'MWEBWORK'
5 4 AND-EQUAL
6 5 INDEX (RANGE SCAN) OF 'IX_WORK_LEVEL' (NON-UNIQUE)
7 5 INDEX (RANGE SCAN) OF 'IX_WORK_ENTITY' (NON-UNIQUE
)
Statistics
----------------------------------------------------------
229 recursive calls
3 db block gets
94839 consistent gets
0 physical reads
0 redo size
1251 bytes sent via SQL*Net to client
1080 bytes received via SQL*Net from client
6 SQL*Net roundtrips to/from client
8 sorts (memory)
0 sorts (disk)
45 rows processed
Only the MINUS one takes 0.12 seconds, outer join takes 13 seconds and rest 9 seconds
Thanks again Chris
Sonali
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|