Tuning PL/SQL - tkprof shows much more work for RECURSIVE STATEMENTS
Hi,
Firstly I'm not sure if this should be in "Database - General" or "SQL and PL/SQL". Since it's more of a performance tuning question than specifically about the PL/SQL, I'm going to put it here in "Database - General". I hope that doesn't offend anyone.
I've just started looking at a reported performance problem in our app. One of the developers set me up a procedure that replicates the issue, I ran it while tracing the session and then fed the trace file to tkprof. The results at the bottom of my tkprof output file look like this:
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 3 0.01 0.07 10 60 0 0
Execute 3 0.01 0.01 0 3 0 3
Fetch 0 0.00 0.00 0 0 0 0
total 6 0.03 0.08 10 63 0 3
Misses in library cache during parse: 1
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 5 0.00 0.00
SQL*Net message from client 4 1.68 1.70
db file sequential read 18 0.01 0.10
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 416 0.00 0.01 0 0 2 0
Execute 1456 0.71 0.75 26 1739 425 590
Fetch 2932 0.12 2.21 337 6338 0 3061
total 4804 0.84 2.98 363 8077 427 3651
Misses in library cache during parse: 25
Misses in library cache during execute: 24
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 343 0.08 2.09
db file scattered read 1 0.00 0.00
47 user SQL statements in session.
888 internal SQL statements in session.
935 SQL statements in session.
31 statements EXPLAINed in this session.I'm looking in particular at that relatively high activity for RECURSIVE STATEMENTS, because to me, the NON-RECURSIVE (ie the actual submitted statements that form our code) looks pretty harmless. This is my first experience of trying to tune some complex looking PL/SQL and I've no idea what could be considered more "normal", but from what I think I know, and google searches, the results look quite odd to me.
Is this high activity for RECURSIVE STATEMENTS a problem, and if so, what should I start looking at to reduce that activity?
Regards,
Ados
If you have a PLSQL block or stored procedure running SQL statements, the SQL statements, too, will appear as RECURSIVE STATEMENTS in the trace file and tkprof.
It is a misconception that RECURSIVE STATEMENTS are only SYS statements doing data dictionary lookups / updates.
For example, I ran this :
SQL> create or replace procedure test_procedure as
2 begin
3 insert into my_emp_table select * from my_emp_table;
4 dbms_output.put_line('Rows Inserted : ' || sql%rowcount);
5 insert into my_emp_table select * from my_emp_table where emplid=1;
6 dbms_output.put_line('Rows Inserted : ' || sql%rowcount);
7 end;
8 /
Procedure created.
SQL> alter session set events '10046 trace name context forever, level 8';
Session altered.
SQL> execute test_procedure;
PL/SQL procedure successfully completed.
SQL> commit;
Commit complete.
SQL> select 'x' from dual;
x
SQL> exitThe tkprof shows ;
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 3 0.00 0.00 0 0 0 0
Execute 3 0.00 0.00 0 0 1 1
Fetch 2 0.00 0.00 0 0 0 1
total 8 0.00 0.00 0 0 1 2
Misses in library cache during parse: 2
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 5 0.00 0.00
SQL*Net message from client 5 5.31 11.97
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 4 0.00 0.00 0 2 0 0
Execute 4 0.00 0.00 2 16 7 5
Fetch 2 0.00 0.00 0 14 0 2
total 10 0.01 0.01 2 32 7 7
Misses in library cache during parse: 2
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 2 0.00 0.00
7 user SQL statements in session.
0 internal SQL statements in session.
7 SQL statements in session.Which were the Non-Recursive statements ?
BEGIN test_procedure; END;
commit
select 'x' from dualWhich were the RECURSIVE statements (which you can identify by the keywords : (recursive depth) ?
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
NVL(SUM(C2),:"SYS_B_1")
FROM
(SELECT /*+ NO_PARALLEL("MY_EMP_TABLE") FULL("MY_EMP_TABLE")
NO_PARALLEL_INDEX("MY_EMP_TABLE") */ :"SYS_B_2" AS C1, :"SYS_B_3" AS C2
FROM "MY_EMP_TABLE" "MY_EMP_TABLE") SAMPLESUB
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 7 0 1
total 3 0.00 0.00 0 7 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 64 (recursive depth: 2)
INSERT INTO MY_EMP_TABLE SELECT * FROM MY_EMP_TABLE
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 1 0 0
Execute 1 0.00 0.00 2 8 4 3
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.00 2 9 4 3
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 64 (recursive depth: 1)
SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE
NO_PARALLEL(SAMPLESUB) opt_param('parallel_execution_enabled', 'false')
NO_PARALLEL_INDEX(SAMPLESUB) NO_SQL_TUNE */ NVL(SUM(C1),:"SYS_B_0"),
NVL(SUM(C2),:"SYS_B_1")
FROM
(SELECT /*+ IGNORE_WHERE_CLAUSE NO_PARALLEL("MY_EMP_TABLE")
FULL("MY_EMP_TABLE") NO_PARALLEL_INDEX("MY_EMP_TABLE") */ :"SYS_B_2" AS C1,
CASE WHEN "MY_EMP_TABLE"."EMPLID"=:"SYS_B_3" THEN :"SYS_B_4" ELSE
:"SYS_B_5" END AS C2 FROM "MY_EMP_TABLE" "MY_EMP_TABLE") SAMPLESUB
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 0 7 0 1
total 3 0.00 0.00 0 7 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 64 (recursive depth: 2)
INSERT INTO MY_EMP_TABLE SELECT * FROM MY_EMP_TABLE WHERE EMPLID=1
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 1 0 0
Execute 1 0.00 0.00 0 8 3 2
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.00 0 9 3 2
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 64 (recursive depth: 1)The INSERT statments are recursive depth 1 while the SELECTS they cause are recursive depth 2.
Note that neither of these are are actually SYS statements agaisnt the data dictionary !!
Edit :
IF you read the last few lines, it would become evident that some (in my case all) the RECURSIVE STATEMENTS are non-SYS statements, actually being my code, not Oracle's code.
1 session in tracefile.
7 user SQL statements in trace file.
0 internal SQL statements in trace file.
7 SQL statements in trace file.
7 unique SQL statements in trace file.
87 lines in trace file.
6 elapsed seconds in trace file.I have 3 non-recursive and 4 "RECURSIVE" statements. All 7 are correctly identified as "user SQL statements in trace file".
Hemant K Chitale
http://hemantoracledba.blogspot.com
Edited by: Hemant K Chitale on Jul 29, 2009 11:44 PM
Edited by: Hemant K Chitale on Jul 29, 2009 11:47 PM
Similar Messages
-
Just bought two new iPhone 6 plus phones. Cannot get the email to load on my husbands phone for his work. He works for the state and I don't know if that is the issue or not. Any suggestions?
Your husband should contact his IT department at work to find out if he is allowed to set up his work email on his personal device and if so, how to do it.
-
Wrapping a "select" into a "select * from (SQL select)" costs much more
I had a SELECT statement which works OK. It takes about 10-20 seconds to respond.
However, I need to order it and use rownum so I figured by wrapping the statement in a SELECT * FROM (...) would be the same difference, pretty much.
However, before I even add a sort or use rownum, it costs so much more.
How can that be? Surely it runs the subquery and then just shows the columns from that?
Here are the details for both:
SELECT ms.component_part, ip."DESCRIPTION", ms.qty_per_assembly, ipp.
mrp_order_code, ip.planner_buyer, ip.type_code, pps.vendor_no, pps.
vendor_manuf_leadtime, ipp.min_order_qty, ipp.maxweek_supply
period_order_quantity, ipp.safety_stock,
ifsapp.inventory_part_in_stock_api.GET_INVENTORY_QTY_ONHAND(ms.contract,
ms.component_part, NULL) qty_onhand, ip.estimated_material_cost, (SELECT
SUM(ex.qty_demand)
FROM ifsinfo.km_order_supply_demand_mfg ex
WHERE ex.date_required BETWEEN TO_DATE(SYSDATE) AND TO_DATE('01/05/2007',
'DD/MM/YYYY') + 1 - 1 / ((60 * 60) * 24)
AND ex.part_no = ms.component_part
AND ex.contract = ms.contract
GROUP BY ex.part_no) manu_sum_dmd, (SELECT SUM(ex.qty_demand)
FROM ifsinfo.km_order_supply_demand_pur ex
WHERE ex.date_required BETWEEN
TO_DATE(SYSDATE) AND
TO_DATE('01/05/2007',
'DD/MM/YYYY') + 1 - 1 / ((60
* 60) * 24)
AND ex.part_no = ms.
component_part
AND ex.contract = ms.contract
GROUP BY ex.part_no) purch_sum_dmd
FROM ifsapp.manuf_structure ms, ifsapp.inventory_part ip, ifsapp.
inventory_part_planning ipp, ifsapp.purchase_part_supplier pps
WHERE ms.component_part = ip.part_no
AND ms.contract = ip.contract
AND ms.component_part = ipp.part_no
AND ms.contract = ipp.contract
AND ms.component_part = pps.part_no(+)
AND ms.contract = pps.contract(+)
AND NVL(pps.primary_vendor_db, 'Y') = 'Y'
CONNECT BY PRIOR ms.component_part = ms.part_no
AND PRIOR ms.contract = ms.contract
AND ms.eff_phase_in_date <= SYSDATE
AND NVL(ms.eff_phase_out_date, SYSDATE) >= SYSDATE
START WITH ms.part_no = 'K7501890'
AND ms.contract = 'OKMMN'
AND ms.bom_type = 'Manufacturing'
AND ms.eng_chg_level = '1'
Get Explain Plan By:
Cost All Rows
Execution Steps:
328 SELECT STATEMENT
155 SORT (GROUP BY NOSORT)
154 MERGE JOIN (CARTESIAN)
5 FILTER
4 NESTED LOOPS (OUTER)
1 INDEX (RANGE SCAN), INVENTORY_PART_CONFIG_PK (IFSAPP)
3 TABLE ACCESS (BY INDEX ROWID), INVENTORY_PART_TAB (IFSAPP)
2 INDEX (UNIQUE SCAN), INVENTORY_PART_PK (IFSAPP)
153 BUFFER (SORT)
152 VIEW, ORDER_SUPPLY_DEMAND_EXT (IFSAPP)
151 UNION-ALL
9 FILTER
8 INLIST ITERATOR
7 TABLE ACCESS (BY INDEX ROWID), SHOP_MATERIAL_ALLOC_TAB (IFSAPP)
6 INDEX (RANGE SCAN), SHOP_MATERIAL_ALLOC_1_IX (IFSAPP)
13 FILTER
12 INLIST ITERATOR
11 TABLE ACCESS (BY INDEX ROWID), CUSTOMER_ORDER_LINE_TAB (IFSAPP)
10 INDEX (RANGE SCAN), CUSTOMER_ORDER_LINE_2_IX (IFSAPP)
17 FILTER
16 INLIST ITERATOR
15 TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_TAB (IFSAPP)
14 INDEX (RANGE SCAN), PURCHASE_ORDER_LINE_1_IX (IFSAPP)
20 FILTER
19 TABLE ACCESS (BY INDEX ROWID), SHOP_ORD_TAB (IFSAPP)
18 INDEX (RANGE SCAN), SHOP_ORD_TAB_1_IX (IFSAPP)
26 FILTER
25 NESTED LOOPS
22 TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_COMP_TAB (IFSAPP)
21 INDEX (RANGE SCAN), PURCHASE_ORDER_LINE_COMP_1_IX (IFSAPP)
24 TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_TAB (IFSAPP)
23 INDEX (UNIQUE SCAN), PURCHASE_ORDER_LINE_PK (IFSAPP)
30 FILTER
29 INLIST ITERATOR
28 TABLE ACCESS (BY INDEX ROWID), MATERIAL_REQUIS_LINE_TAB (IFSAPP)
27 INDEX (RANGE SCAN), MATERIAL_REQUIS_LINE_1_IX (IFSAPP)
39 FILTER
38 NESTED LOOPS
35 NESTED LOOPS
32 TABLE ACCESS (BY INDEX ROWID), MAINT_MATERIAL_REQ_LINE_TAB (IFSAPP)
31 INDEX (RANGE SCAN), MAINT_MATERIAL_REQ_LINE_IX2 (IFSAPP)
34 TABLE ACCESS (BY INDEX ROWID), MAINT_MATERIAL_REQUISITION_TAB (IFSAPP)
33 INDEX (UNIQUE SCAN), MAINT_MATERIAL_REQUISITION_PK (IFSAPP)
37 TABLE ACCESS (BY INDEX ROWID), ACTIVE_WORK_ORDER_TAB (IFSAPP)
36 INDEX (UNIQUE SCAN), ACTIVE_WORK_ORDER_PK (IFSAPP)
42 FILTER
41 TABLE ACCESS (BY INDEX ROWID), PURCHASE_REQ_LINE_TAB (IFSAPP)
40 INDEX (RANGE SCAN), PURCHASE_REQ_LINE1_IX (IFSAPP)
79 VIEW, MRP_PART_SUPPLY_DEMAND_EXT (IFSAPP)
78 SORT (UNIQUE)
77 UNION-ALL
57 FILTER
56 NESTED LOOPS (ANTI)
44 TABLE ACCESS (BY INDEX ROWID), MRP_PART_SUPPLY_DEMAND_TAB (IFSAPP)
43 INDEX (RANGE SCAN), MRP_PART_SUPPLY_DEMAND_PK (IFSAPP)
55 VIEW, LINE_SCHED_COMP_EXT (IFSAPP)
54 UNION-ALL (PARTITION)
48 NESTED LOOPS
46 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP)
45 INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP)
47 INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP)
53 NESTED LOOPS
50 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP)
49 INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP)
52 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP)
51 INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP)
76 FILTER
75 NESTED LOOPS (ANTI)
62 NESTED LOOPS
59 TABLE ACCESS (BY INDEX ROWID), MRP_PART_SUPPLY_DEMAND_TAB (IFSAPP)
58 INDEX (RANGE SCAN), MRP_PART_SUPPLY_DEMAND_PK (IFSAPP)
61 TABLE ACCESS (BY INDEX ROWID), INVENTORY_PART_PLANNING_TAB (IFSAPP)
60 INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP)
74 VIEW, LINE_SCHED_COMP_EXT (IFSAPP)
73 UNION-ALL (PARTITION)
67 NESTED LOOPS
64 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP)
63 INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP)
66 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_TAB (IFSAPP)
65 INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP)
72 NESTED LOOPS
69 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP)
68 INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP)
71 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP)
70 INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP)
84 FILTER
83 NESTED LOOPS
80 INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP)
82 TABLE ACCESS (BY INDEX ROWID), SHOP_ORDER_PROP_TAB (IFSAPP)
81 INDEX (RANGE SCAN), SHOP_ORDER_PROP_1_IX (IFSAPP)
90 FILTER
89 NESTED LOOPS
86 TABLE ACCESS (BY INDEX ROWID), LEVEL_1_PART_TAB (IFSAPP)
85 INDEX (UNIQUE SCAN), LEVEL_1_PART_PK (IFSAPP)
88 TABLE ACCESS (BY INDEX ROWID), LEVEL_1_FORECAST_TAB (IFSAPP)
87 INDEX (RANGE SCAN), LEVEL_1_FORECAST_PK (IFSAPP)
96 FILTER
93 FILTER
92 TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP)
91 INDEX (RANGE SCAN), DOP_ORDER_1_IX (IFSAPP)
95 TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP)
94 INDEX (UNIQUE SCAN), DOP_ORDER_PK (IFSAPP)
99 FILTER
98 TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP)
97 INDEX (RANGE SCAN), DOP_ORDER_1_IX (IFSAPP)
112 VIEW, LINE_SCHED_COMP_EXT (IFSAPP)
111 UNION-ALL
104 FILTER
103 NESTED LOOPS
101 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP)
100 INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP)
102 INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP)
110 FILTER
109 NESTED LOOPS
106 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP)
105 INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP)
108 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP)
107 INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP)
117 FILTER
116 NESTED LOOPS
113 INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP)
115 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_TAB (IFSAPP)
114 INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_2_IX (IFSAPP)
120 FILTER
119 TABLE ACCESS (BY INDEX ROWID), ACTIVE_WORK_ORDER_TAB (IFSAPP)
118 INDEX (RANGE SCAN), ACTIVE_WORK_ORDER_IX2 (IFSAPP)
123 FILTER
122 TABLE ACCESS (BY INDEX ROWID), SPARE_PART_FORECAST_TAB (IFSAPP)
121 INDEX (RANGE SCAN), SPARE_PART_FORECAST_PK (IFSAPP)
126 FILTER
125 TABLE ACCESS (BY INDEX ROWID), CUST_SCHED_PLAN_DEMAND_TAB (IFSAPP)
124 INDEX (RANGE SCAN), CUST_SCHED_PLAN_DEMAND_1_IX (IFSAPP)
138 FILTER
137 HASH JOIN (ANTI)
135 HASH JOIN (ANTI)
133 NESTED LOOPS
130 NESTED LOOPS
128 TABLE ACCESS (BY INDEX ROWID), MATERIAL_PROCUREMENT_LIST_TAB (IFSAPP)
127 INDEX (RANGE SCAN), MPL_AK1 (IFSAPP)
129 INDEX (UNIQUE SCAN), ACTIVITY_PK (IFSAPP)
132 TABLE ACCESS (BY INDEX ROWID), PROJECT_PRODUCT_STRUCTURE_TAB (IFSAPP)
131 INDEX (UNIQUE SCAN), PROJECT_PRODUCT_STRUCTURE_PK (IFSAPP)
134 TABLE ACCESS (FULL), PROCURED_MATERIAL_TAB (IFSAPP)
136 TABLE ACCESS (FULL), PROCURED_MATERIAL_TAB (IFSAPP)
141 FILTER
140 TABLE ACCESS (BY INDEX ROWID), HPM_PART_SUPPLY_DEMAND_TAB (IFSAPP)
139 INDEX (RANGE SCAN), HPM_PART_SUPPLY_DEMAND_PK (IFSAPP)
144 FILTER
143 TABLE ACCESS (BY INDEX ROWID), SUPP_SCHED_PLAN_SUPPLY_TAB (IFSAPP)
142 INDEX (RANGE SCAN), SUPP_SCHED_PLAN_SUPPLY_1_IX (IFSAPP)
147 FILTER
146 TABLE ACCESS (BY INDEX ROWID), ORDER_QUOTATION_LINE_TAB (IFSAPP)
145 INDEX (RANGE SCAN), ORDER_QUOTATION_LINE_2_IX (IFSAPP)
150 FILTER
149 TABLE ACCESS (BY INDEX ROWID), PROMISE_INVENTORY_ORDER_TAB (IFSAPP)
148 INDEX (FULL SCAN), PROMISE_INVENTORY_ORDER_PK (IFSAPP)
306 SORT (GROUP BY NOSORT)
305 NESTED LOOPS
157 TABLE ACCESS (BY INDEX ROWID), PURCHASE_PART_TAB (IFSAPP)
156 INDEX (UNIQUE SCAN), PURCHASE_PART_PK (IFSAPP)
304 VIEW, ORDER_SUPPLY_DEMAND_EXT (IFSAPP)
303 UNION-ALL
161 FILTER
160 INLIST ITERATOR
159 TABLE ACCESS (BY INDEX ROWID), SHOP_MATERIAL_ALLOC_TAB (IFSAPP)
158 INDEX (RANGE SCAN), SHOP_MATERIAL_ALLOC_1_IX (IFSAPP)
165 FILTER
164 INLIST ITERATOR
163 TABLE ACCESS (BY INDEX ROWID), CUSTOMER_ORDER_LINE_TAB (IFSAPP)
162 INDEX (RANGE SCAN), CUSTOMER_ORDER_LINE_2_IX (IFSAPP)
169 FILTER
168 INLIST ITERATOR
167 TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_TAB (IFSAPP)
166 INDEX (RANGE SCAN), PURCHASE_ORDER_LINE_1_IX (IFSAPP)
172 FILTER
171 TABLE ACCESS (BY INDEX ROWID), SHOP_ORD_TAB (IFSAPP)
170 INDEX (RANGE SCAN), SHOP_ORD_TAB_1_IX (IFSAPP)
178 FILTER
177 NESTED LOOPS
174 TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_COMP_TAB (IFSAPP)
173 INDEX (RANGE SCAN), PURCHASE_ORDER_LINE_COMP_1_IX (IFSAPP)
176 TABLE ACCESS (BY INDEX ROWID), PURCHASE_ORDER_LINE_TAB (IFSAPP)
175 INDEX (UNIQUE SCAN), PURCHASE_ORDER_LINE_PK (IFSAPP)
182 FILTER
181 INLIST ITERATOR
180 TABLE ACCESS (BY INDEX ROWID), MATERIAL_REQUIS_LINE_TAB (IFSAPP)
179 INDEX (RANGE SCAN), MATERIAL_REQUIS_LINE_1_IX (IFSAPP)
191 FILTER
190 NESTED LOOPS
187 NESTED LOOPS
184 TABLE ACCESS (BY INDEX ROWID), MAINT_MATERIAL_REQ_LINE_TAB (IFSAPP)
183 INDEX (RANGE SCAN), MAINT_MATERIAL_REQ_LINE_IX2 (IFSAPP)
186 TABLE ACCESS (BY INDEX ROWID), MAINT_MATERIAL_REQUISITION_TAB (IFSAPP)
185 INDEX (UNIQUE SCAN), MAINT_MATERIAL_REQUISITION_PK (IFSAPP)
189 TABLE ACCESS (BY INDEX ROWID), ACTIVE_WORK_ORDER_TAB (IFSAPP)
188 INDEX (UNIQUE SCAN), ACTIVE_WORK_ORDER_PK (IFSAPP)
194 FILTER
193 TABLE ACCESS (BY INDEX ROWID), PURCHASE_REQ_LINE_TAB (IFSAPP)
192 INDEX (RANGE SCAN), PURCHASE_REQ_LINE1_IX (IFSAPP)
231 VIEW, MRP_PART_SUPPLY_DEMAND_EXT (IFSAPP)
230 SORT (UNIQUE)
229 UNION-ALL
209 FILTER
208 NESTED LOOPS (ANTI)
196 TABLE ACCESS (BY INDEX ROWID), MRP_PART_SUPPLY_DEMAND_TAB (IFSAPP)
195 INDEX (RANGE SCAN), MRP_PART_SUPPLY_DEMAND_PK (IFSAPP)
207 VIEW, LINE_SCHED_COMP_EXT (IFSAPP)
206 UNION-ALL (PARTITION)
200 NESTED LOOPS
198 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP)
197 INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP)
199 INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP)
205 NESTED LOOPS
202 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP)
201 INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP)
204 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP)
203 INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP)
228 FILTER
227 NESTED LOOPS (ANTI)
214 NESTED LOOPS
211 TABLE ACCESS (BY INDEX ROWID), MRP_PART_SUPPLY_DEMAND_TAB (IFSAPP)
210 INDEX (RANGE SCAN), MRP_PART_SUPPLY_DEMAND_PK (IFSAPP)
213 TABLE ACCESS (BY INDEX ROWID), INVENTORY_PART_PLANNING_TAB (IFSAPP)
212 INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP)
226 VIEW, LINE_SCHED_COMP_EXT (IFSAPP)
225 UNION-ALL (PARTITION)
219 NESTED LOOPS
216 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP)
215 INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP)
218 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_TAB (IFSAPP)
217 INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP)
224 NESTED LOOPS
221 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP)
220 INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP)
223 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP)
222 INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP)
236 FILTER
235 NESTED LOOPS
232 INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP)
234 TABLE ACCESS (BY INDEX ROWID), SHOP_ORDER_PROP_TAB (IFSAPP)
233 INDEX (RANGE SCAN), SHOP_ORDER_PROP_1_IX (IFSAPP)
242 FILTER
241 NESTED LOOPS
238 TABLE ACCESS (BY INDEX ROWID), LEVEL_1_PART_TAB (IFSAPP)
237 INDEX (UNIQUE SCAN), LEVEL_1_PART_PK (IFSAPP)
240 TABLE ACCESS (BY INDEX ROWID), LEVEL_1_FORECAST_TAB (IFSAPP)
239 INDEX (RANGE SCAN), LEVEL_1_FORECAST_PK (IFSAPP)
248 FILTER
245 FILTER
244 TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP)
243 INDEX (RANGE SCAN), DOP_ORDER_1_IX (IFSAPP)
247 TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP)
246 INDEX (UNIQUE SCAN), DOP_ORDER_PK (IFSAPP)
251 FILTER
250 TABLE ACCESS (BY INDEX ROWID), DOP_ORDER_TAB (IFSAPP)
249 INDEX (RANGE SCAN), DOP_ORDER_1_IX (IFSAPP)
264 VIEW, LINE_SCHED_COMP_EXT (IFSAPP)
263 UNION-ALL
256 FILTER
255 NESTED LOOPS
253 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_MTRL_TAB (IFSAPP)
252 INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_MTRL_1_IX (IFSAPP)
254 INDEX (UNIQUE SCAN), LINE_SCHED_RECEIPT_PK (IFSAPP)
262 FILTER
261 NESTED LOOPS
258 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_MTRL_TAB (IFSAPP)
257 INDEX (RANGE SCAN), PRODUCTION_RECEIPT_MTRL_1_IX (IFSAPP)
260 TABLE ACCESS (BY INDEX ROWID), PRODUCTION_RECEIPT_TAB (IFSAPP)
259 INDEX (UNIQUE SCAN), PRODUCTION_RECEIPT_PK (IFSAPP)
269 FILTER
268 NESTED LOOPS
265 INDEX (UNIQUE SCAN), INVENTORY_PART_PLANNING_PK (IFSAPP)
267 TABLE ACCESS (BY INDEX ROWID), LINE_SCHED_RECEIPT_TAB (IFSAPP)
266 INDEX (RANGE SCAN), LINE_SCHED_RECEIPT_2_IX (IFSAPP)
272 FILTER
271 TABLE ACCESS (BY INDEX ROWID), ACTIVE_WORK_ORDER_TAB (IFSAPP)
270 INDEX (RANGE SCAN), ACTIVE_WORK_ORDER_IX2 (IFSAPP)
275 FILTER
274 TABLE ACCESS (BY INDEX ROWID), SPARE_PART_FORECAST_TAB (IFSAPP)
273 INDEX (RANGE SCAN), SPARE_PART_FORECAST_PK (IFSAPP)
278 FILTER
277 TABLE ACCESS (BY INDEX ROWID), CUST_SCHED_PLAN_DEMAND_TAB (IFSAPP)
276 INDEX (RANGE SCAN), CUST_SCHED_PLAN_DEMAND_1_IX (IFSAPP)
290 FILTER
289 HASH JOIN (ANTI)
287 HASH JOIN (ANTI)
285 NESTED LOOPS
282 NESTED LOOPS
280 TABLE ACCESS (BY INDEX ROWID), MATERIAL_PROCUREMENT_LIST_TAB (IFSAPP)
279 INDEX (RANGE SCAN), MPL_AK1 (IFSAPP)
281 INDEX (UNIQUE SCAN), ACTIVITY_PK (IFSAPP)
284 TABLE ACCESS (BY INDEX ROWID), PROJECT_PRODUCT_STRUCTURE_TAB (IFSAPP)
283 INDEX (UNIQUE SCAN), PROJECT_PRODUCT_STRUCTURE_PK (IFSAPP)
286 TABLE ACCESS (FULL), PROCURED_MATERIAL_TAB (IFSAPP)
288 TABLE ACCESS (FULL), PROCURED_MATERIAL_TAB (IFSAPP)
293 FILTER
292 TABLE ACCESS (BY INDEX ROWID), HPM_PART_SUPPLY_DEMAND_TAB (IFSAPP)
291 INDEX (RANGE SCAN), HPM_PART_SUPPLY_DEMAND_PK (IFSAPP)
296 FILTER
295 TABLE ACCESS (BY INDEX ROWID), SUPP_SCHED_PLAN_SUPPLY_TAB (IFSAPP)
294 INDEX (RANGE SCAN), SUPP_SCHED_PLAN_SUPPLY_1_IX (IFSAPP)
299 FILTER
298 TABLE ACCESS (BY INDEX ROWID), ORDER_QUOTATION_LINE_TAB (IFSAPP)
297 INDEX (RANGE SCAN), ORDER_QUOTATION_LINE_2_IX (IFSAPP)
302 FILTER
301 TABLE ACCESS (BY INDEX ROWID), PROMISE_INVENTORY_ORDER_TAB (IFSAPP)
300 INDEX (FULL SCAN), PROMISE_INVENTORY_ORDER_PK (IFSAPP)
327 FILTER
326 CONNECT BY (WITH FILTERING)
315 FILTER
314 COUNT
313 HASH JOIN
307 TABLE ACCESS (FULL), INVENTORY_PART_TAB (IFSAPP)
312 HASH JOIN (OUTER)
310 HASH JOIN
308 TABLE ACCESS (FULL), INVENTORY_PART_PLANNING_TAB (IFSAPP)
309 TABLE ACCESS (FULL), MANUF_STRUCTURE_TAB (IFSAPP)
311 TABLE ACCESS (FULL), PURCHASE_PART_SUPPLIER_TAB (IFSAPP)
325 HASH JOIN
316 CONNECT BY PUMP
324 COUNT
323 HASH JOIN
317 TABLE ACCESS (FULL), INVENTORY_PART_TAB (IFSAPP)
322 HASH JOIN (OUTER)
320 HASH JOIN
318 TABLE ACCESS (FULL), INVENTORY_PART_PLANNING_TAB (IFSAPP)
319 TABLE ACCESS (FULL), MANUF_STRUCTURE_TAB (IFSAPP)
321 TABLE ACCESS (FULL), PURCHASE_PART_SUPPLIER_TAB (IFSAPP)
Step Description Est Cost Est Row Count Est Byte Count
1 This operation retrieves multiple ROWIDs by scanning index INVENTORY_PART_CONFIG_PK (ascending by key). 3 1 15
2 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PK. 1 1
3 This operation retrieves a row of table INVENTORY_PART_TAB based on its ROWID. 1 1 17
4 This operation performs an outer join by comparing each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds.
5 This operation takes a row source and rejects some of the rows, returning the accepted rows.
6 This operation retrieves multiple ROWIDs by scanning index SHOP_MATERIAL_ALLOC_1_IX (ascending by key). 3 106
7 This operation retrieves a row of table SHOP_MATERIAL_ALLOC_TAB based on its ROWID. 11 1 41
8 This operation represents an iteration over each element in the list represented by its child node.
9 This operation takes a row source and rejects some of the rows, returning the accepted rows.
10 This operation retrieves multiple ROWIDs by scanning index CUSTOMER_ORDER_LINE_2_IX (ascending by key). 3 10
11 This operation retrieves a row of table CUSTOMER_ORDER_LINE_TAB based on its ROWID. 2 1 48
12 This operation represents an iteration over each element in the list represented by its child node.
13 This operation takes a row source and rejects some of the rows, returning the accepted rows.
14 This operation retrieves multiple ROWIDs by scanning index PURCHASE_ORDER_LINE_1_IX (ascending by key). 3 2
15 This operation retrieves a row of table PURCHASE_ORDER_LINE_TAB based on its ROWID. 1 1 48
16 This operation represents an iteration over each element in the list represented by its child node.
17 This operation takes a row source and rejects some of the rows, returning the accepted rows.
18 This operation retrieves multiple ROWIDs by scanning index SHOP_ORD_TAB_1_IX (ascending by key). 1 21
19 This operation retrieves a row of table SHOP_ORD_TAB based on its ROWID. 2 1 46
20 This operation takes a row source and rejects some of the rows, returning the accepted rows.
21 This operation retrieves multiple ROWIDs by scanning index PURCHASE_ORDER_LINE_COMP_1_IX (ascending by key). 1 12
22 This operation retrieves a row of table PURCHASE_ORDER_LINE_COMP_TAB based on its ROWID. 1 1 43
23 This operation retrieves a single ROWID by an index lookup of PURCHASE_ORDER_LINE_PK. 1 1
24 This operation retrieves a row of table PURCHASE_ORDER_LINE_TAB based on its ROWID. 1 1 25
25 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 68
26 This operation takes a row source and rejects some of the rows, returning the accepted rows.
27 This operation retrieves multiple ROWIDs by scanning index MATERIAL_REQUIS_LINE_1_IX (ascending by key). 2 1
28 This operation retrieves a row of table MATERIAL_REQUIS_LINE_TAB based on its ROWID. 1 1 37
29 This operation represents an iteration over each element in the list represented by its child node.
30 This operation takes a row source and rejects some of the rows, returning the accepted rows.
31 This operation retrieves multiple ROWIDs by scanning index MAINT_MATERIAL_REQ_LINE_IX2 (ascending by key). 1 1
32 This operation retrieves a row of table MAINT_MATERIAL_REQ_LINE_TAB based on its ROWID. 1 1 79
33 This operation retrieves a single ROWID by an index lookup of MAINT_MATERIAL_REQUISITION_PK. 1
34 This operation retrieves a row of table MAINT_MATERIAL_REQUISITION_TAB based on its ROWID. 1 1 43
35 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 122
36 This operation retrieves a single ROWID by an index lookup of ACTIVE_WORK_ORDER_PK. 1
37 This operation retrieves a row of table ACTIVE_WORK_ORDER_TAB based on its ROWID. 1 1 30
38 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 152
39 This operation takes a row source and rejects some of the rows, returning the accepted rows.
40 This operation retrieves multiple ROWIDs by scanning index PURCHASE_REQ_LINE1_IX (ascending by key). 3 3
41 This operation retrieves a row of table PURCHASE_REQ_LINE_TAB based on its ROWID. 1 1 40
42 This operation takes a row source and rejects some of the rows, returning the accepted rows.
43 This operation retrieves multiple ROWIDs by scanning index MRP_PART_SUPPLY_DEMAND_PK (ascending by key). 3 17
44 This operation retrieves a row of table MRP_PART_SUPPLY_DEMAND_TAB based on its ROWID. 2 1 49
45 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1
46 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 48
47 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK. 1 8
48 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 56
49 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1
50 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
51 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK. 1
52 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
53 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 64
54 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
55 This operation yields the result of performing the query of views. 1 1 40
56 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 89
57 This operation takes a row source and rejects some of the rows, returning the accepted rows.
58 This operation retrieves multiple ROWIDs by scanning index MRP_PART_SUPPLY_DEMAND_PK (ascending by key). 3 17
59 This operation retrieves a row of table MRP_PART_SUPPLY_DEMAND_TAB based on its ROWID. 2 1 49
60 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 1 1
61 This operation retrieves a row of table INVENTORY_PART_PLANNING_TAB based on its ROWID. 1 1 17
62 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 66
63 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1
64 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
65 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK. 1
66 This operation retrieves a row of table LINE_SCHED_RECEIPT_TAB based on its ROWID. 1 1 22
67 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 61
68 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1
69 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 26
70 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK. 1
71 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
72 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 51
73 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
74 This operation yields the result of performing the query of views. 1 1 32
75 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 4 1 98
76 This operation takes a row source and rejects some of the rows, returning the accepted rows.
77 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
78 This operation returns the distinct rows from its child row source, in order. 11 2 187
79 This operation yields the result of performing the query of views. 11 2 80
80 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 2 1 15
81 This operation retrieves multiple ROWIDs by scanning index SHOP_ORDER_PROP_1_IX (ascending by key). 2 30
82 This operation retrieves a row of table SHOP_ORDER_PROP_TAB based on its ROWID. 2 1 44
83 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 59
84 This operation takes a row source and rejects some of the rows, returning the accepted rows.
85 This operation retrieves a single ROWID by an index lookup of LEVEL_1_PART_PK. 1 1
86 This operation retrieves a row of table LEVEL_1_PART_TAB based on its ROWID. 1 1 17
87 This operation retrieves multiple ROWIDs by scanning index LEVEL_1_FORECAST_PK (ascending by key). 1 16
88 This operation retrieves a row of table LEVEL_1_FORECAST_TAB based on its ROWID. 1 1 31
89 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 48
90 This operation takes a row source and rejects some of the rows, returning the accepted rows.
91 This operation retrieves multiple ROWIDs by scanning index DOP_ORDER_1_IX (ascending by key). 1 1
92 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 96
93 This operation takes a row source and rejects some of the rows, returning the accepted rows.
94 This operation retrieves a single ROWID by an index lookup of DOP_ORDER_PK. 1
95 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 43
96 This operation takes a row source and rejects some of the rows, returning the accepted rows.
97 This operation retrieves multiple ROWIDs by scanning index DOP_ORDER_1_IX (ascending by key). 1 1
98 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 69
99 This operation takes a row source and rejects some of the rows, returning the accepted rows.
100 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1
101 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 48
102 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK. 1 8
103 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 56
104 This operation takes a row source and rejects some of the rows, returning the accepted rows.
105 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1
106 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
107 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK. 1
108 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
109 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 64
110 This operation takes a row source and rejects some of the rows, returning the accepted rows.
111 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
112 This operation yields the result of performing the query of views. 4 2 80
113 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 2 1 15
114 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_2_IX (ascending by key). 1
115 This operation retrieves a row of table LINE_SCHED_RECEIPT_TAB based on its ROWID. 1 1 53
116 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 68
117 This operation takes a row source and rejects some of the rows, returning the accepted rows.
118 This operation retrieves multiple ROWIDs by scanning index ACTIVE_WORK_ORDER_IX2 (ascending by key). 1 1
119 This operation retrieves a row of table ACTIVE_WORK_ORDER_TAB based on its ROWID. 1 1 73
120 This operation takes a row source and rejects some of the rows, returning the accepted rows.
121 This operation retrieves multiple ROWIDs by scanning index SPARE_PART_FORECAST_PK (ascending by key). 1
122 This operation retrieves a row of table SPARE_PART_FORECAST_TAB based on its ROWID. 1 1 53
123 This operation takes a row source and rejects some of the rows, returning the accepted rows.
124 This operation retrieves multiple ROWIDs by scanning index CUST_SCHED_PLAN_DEMAND_1_IX (ascending by key). 1 1
125 This operation retrieves a row of table CUST_SCHED_PLAN_DEMAND_TAB based on its ROWID. 1 1 40
126 This operation takes a row source and rejects some of the rows, returning the accepted rows.
127 This operation retrieves multiple ROWIDs by scanning index MPL_AK1 (ascending by key). 2 3
128 This operation retrieves a row of table MATERIAL_PROCUREMENT_LIST_TAB based on its ROWID. 1 1 52
129 This operation retrieves a single ROWID by an index lookup of ACTIVITY_PK. 1 7
130 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 59
131 This operation retrieves a single ROWID by an index lookup of PROJECT_PRODUCT_STRUCTURE_PK. 1
132 This operation retrieves a row of table PROJECT_PRODUCT_STRUCTURE_TAB based on its ROWID. 1 1 12
133 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 71
134 This operation retrieves all rows of table PROCURED_MATERIAL_TAB using a full table scan. 2 77 616
135 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 6 1 79
136 This operation retrieves all rows of table PROCURED_MATERIAL_TAB using a full table scan. 2 273 2730
137 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 9 1 89
138 This operation takes a row source and rejects some of the rows, returning the accepted rows.
139 This operation retrieves multiple ROWIDs by scanning index HPM_PART_SUPPLY_DEMAND_PK (ascending by key). 1
140 This operation retrieves a row of table HPM_PART_SUPPLY_DEMAND_TAB based on its ROWID. 1 1 64
141 This operation takes a row source and rejects some of the rows, returning the accepted rows.
142 This operation retrieves multiple ROWIDs by scanning index SUPP_SCHED_PLAN_SUPPLY_1_IX (ascending by key). 1 1
143 This operation retrieves a row of table SUPP_SCHED_PLAN_SUPPLY_TAB based on its ROWID. 1 1 27
144 This operation takes a row source and rejects some of the rows, returning the accepted rows.
145 This operation retrieves multiple ROWIDs by scanning index ORDER_QUOTATION_LINE_2_IX (ascending by key). 3 27
146 This operation retrieves a row of table ORDER_QUOTATION_LINE_TAB based on its ROWID. 3 1 48
147 This operation takes a row source and rejects some of the rows, returning the accepted rows.
148 This operation retrieves all ROWIDs via a full index lookup of PROMISE_INVENTORY_ORDER_PK. 1
149 This operation retrieves a row of table PROMISE_INVENTORY_ORDER_TAB based on its ROWID. 1 1 46
150 This operation takes a row source and rejects some of the rows, returning the accepted rows.
151 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
152 This operation yields the result of performing the query of views. 61 25 1000
153 This plan step has no supplementary description information. 62 25 1000
154 This operation denotes a cartesian product between its two children row sources. Cartesian products are extremely inefficient. 63 8 576
155 63 8 576
156 This operation retrieves a single ROWID by an index lookup of PURCHASE_PART_PK. 2 1
157 This operation retrieves a row of table PURCHASE_PART_TAB based on its ROWID. 1 1 22
158 This operation retrieves multiple ROWIDs by scanning index SHOP_MATERIAL_ALLOC_1_IX (ascending by key). 3 106
159 This operation retrieves a row of table SHOP_MATERIAL_ALLOC_TAB based on its ROWID. 11 1 41
160 This operation represents an iteration over each element in the list represented by its child node.
161 This operation takes a row source and rejects some of the rows, returning the accepted rows.
162 This operation retrieves multiple ROWIDs by scanning index CUSTOMER_ORDER_LINE_2_IX (ascending by key). 3 10
163 This operation retrieves a row of table CUSTOMER_ORDER_LINE_TAB based on its ROWID. 2 1 48
164 This operation represents an iteration over each element in the list represented by its child node.
165 This operation takes a row source and rejects some of the rows, returning the accepted rows.
166 This operation retrieves multiple ROWIDs by scanning index PURCHASE_ORDER_LINE_1_IX (ascending by key). 3 2
167 This operation retrieves a row of table PURCHASE_ORDER_LINE_TAB based on its ROWID. 1 1 48
168 This operation represents an iteration over each element in the list represented by its child node.
169 This operation takes a row source and rejects some of the rows, returning the accepted rows.
170 This operation retrieves multiple ROWIDs by scanning index SHOP_ORD_TAB_1_IX (ascending by key). 1 21
171 This operation retrieves a row of table SHOP_ORD_TAB based on its ROWID. 2 1 46
172 This operation takes a row source and rejects some of the rows, returning the accepted rows.
173 This operation retrieves multiple ROWIDs by scanning index PURCHASE_ORDER_LINE_COMP_1_IX (ascending by key). 1 12
174 This operation retrieves a row of table PURCHASE_ORDER_LINE_COMP_TAB based on its ROWID. 1 1 43
175 This operation retrieves a single ROWID by an index lookup of PURCHASE_ORDER_LINE_PK. 1 1
176 This operation retrieves a row of table PURCHASE_ORDER_LINE_TAB based on its ROWID. 1 1 25
177 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 68
178 This operation takes a row source and rejects some of the rows, returning the accepted rows.
179 This operation retrieves multiple ROWIDs by scanning index MATERIAL_REQUIS_LINE_1_IX (ascending by key). 2 1
180 This operation retrieves a row of table MATERIAL_REQUIS_LINE_TAB based on its ROWID. 1 1 37
181 This operation represents an iteration over each element in the list represented by its child node.
182 This operation takes a row source and rejects some of the rows, returning the accepted rows.
183 This operation retrieves multiple ROWIDs by scanning index MAINT_MATERIAL_REQ_LINE_IX2 (ascending by key). 1 1
184 This operation retrieves a row of table MAINT_MATERIAL_REQ_LINE_TAB based on its ROWID. 1 1 79
185 This operation retrieves a single ROWID by an index lookup of MAINT_MATERIAL_REQUISITION_PK. 1
186 This operation retrieves a row of table MAINT_MATERIAL_REQUISITION_TAB based on its ROWID. 1 1 43
187 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 122
188 This operation retrieves a single ROWID by an index lookup of ACTIVE_WORK_ORDER_PK. 1
189 This operation retrieves a row of table ACTIVE_WORK_ORDER_TAB based on its ROWID. 1 1 30
190 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 152
191 This operation takes a row source and rejects some of the rows, returning the accepted rows.
192 This operation retrieves multiple ROWIDs by scanning index PURCHASE_REQ_LINE1_IX (ascending by key). 3 3
193 This operation retrieves a row of table PURCHASE_REQ_LINE_TAB based on its ROWID. 1 1 40
194 This operation takes a row source and rejects some of the rows, returning the accepted rows.
195 This operation retrieves multiple ROWIDs by scanning index MRP_PART_SUPPLY_DEMAND_PK (ascending by key). 3 17
196 This operation retrieves a row of table MRP_PART_SUPPLY_DEMAND_TAB based on its ROWID. 2 1 49
197 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1
198 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 48
199 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK. 1 8
200 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 56
201 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1
202 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
203 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK. 1
204 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
205 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 64
206 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
207 This operation yields the result of performing the query of views. 1 1 40
208 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 89
209 This operation takes a row source and rejects some of the rows, returning the accepted rows.
210 This operation retrieves multiple ROWIDs by scanning index MRP_PART_SUPPLY_DEMAND_PK (ascending by key). 3 17
211 This operation retrieves a row of table MRP_PART_SUPPLY_DEMAND_TAB based on its ROWID. 2 1 49
212 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 1 1
213 This operation retrieves a row of table INVENTORY_PART_PLANNING_TAB based on its ROWID. 1 1 17
214 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 66
215 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1
216 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
217 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK. 1
218 This operation retrieves a row of table LINE_SCHED_RECEIPT_TAB based on its ROWID. 1 1 22
219 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 61
220 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1
221 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 26
222 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK. 1
223 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
224 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 51
225 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
226 This operation yields the result of performing the query of views. 1 1 32
227 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 4 1 98
228 This operation takes a row source and rejects some of the rows, returning the accepted rows.
229 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
230 This operation returns the distinct rows from its child row source, in order. 11 2 187
231 This operation yields the result of performing the query of views. 11 2 80
232 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 2 1 15
233 This operation retrieves multiple ROWIDs by scanning index SHOP_ORDER_PROP_1_IX (ascending by key). 2 30
234 This operation retrieves a row of table SHOP_ORDER_PROP_TAB based on its ROWID. 2 1 44
235 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 59
236 This operation takes a row source and rejects some of the rows, returning the accepted rows.
237 This operation retrieves a single ROWID by an index lookup of LEVEL_1_PART_PK. 1 1
238 This operation retrieves a row of table LEVEL_1_PART_TAB based on its ROWID. 1 1 17
239 This operation retrieves multiple ROWIDs by scanning index LEVEL_1_FORECAST_PK (ascending by key). 1 16
240 This operation retrieves a row of table LEVEL_1_FORECAST_TAB based on its ROWID. 1 1 31
241 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 48
242 This operation takes a row source and rejects some of the rows, returning the accepted rows.
243 This operation retrieves multiple ROWIDs by scanning index DOP_ORDER_1_IX (ascending by key). 1 1
244 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 96
245 This operation takes a row source and rejects some of the rows, returning the accepted rows.
246 This operation retrieves a single ROWID by an index lookup of DOP_ORDER_PK. 1
247 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 43
248 This operation takes a row source and rejects some of the rows, returning the accepted rows.
249 This operation retrieves multiple ROWIDs by scanning index DOP_ORDER_1_IX (ascending by key). 1 1
250 This operation retrieves a row of table DOP_ORDER_TAB based on its ROWID. 1 1 69
251 This operation takes a row source and rejects some of the rows, returning the accepted rows.
252 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_MTRL_1_IX (ascending by key). 1 1
253 This operation retrieves a row of table LINE_SCHED_RECEIPT_MTRL_TAB based on its ROWID. 1 1 48
254 This operation retrieves a single ROWID by an index lookup of LINE_SCHED_RECEIPT_PK. 1 8
255 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 56
256 This operation takes a row source and rejects some of the rows, returning the accepted rows.
257 This operation retrieves multiple ROWIDs by scanning index PRODUCTION_RECEIPT_MTRL_1_IX (ascending by key). 1 1
258 This operation retrieves a row of table PRODUCTION_RECEIPT_MTRL_TAB based on its ROWID. 1 1 39
259 This operation retrieves a single ROWID by an index lookup of PRODUCTION_RECEIPT_PK. 1
260 This operation retrieves a row of table PRODUCTION_RECEIPT_TAB based on its ROWID. 1 1 25
261 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 64
262 This operation takes a row source and rejects some of the rows, returning the accepted rows.
263 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
264 This operation yields the result of performing the query of views. 4 2 80
265 This operation retrieves a single ROWID by an index lookup of INVENTORY_PART_PLANNING_PK. 2 1 15
266 This operation retrieves multiple ROWIDs by scanning index LINE_SCHED_RECEIPT_2_IX (ascending by key). 1
267 This operation retrieves a row of table LINE_SCHED_RECEIPT_TAB based on its ROWID. 1 1 53
268 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 68
269 This operation takes a row source and rejects some of the rows, returning the accepted rows.
270 This operation retrieves multiple ROWIDs by scanning index ACTIVE_WORK_ORDER_IX2 (ascending by key). 1 1
271 This operation retrieves a row of table ACTIVE_WORK_ORDER_TAB based on its ROWID. 1 1 73
272 This operation takes a row source and rejects some of the rows, returning the accepted rows.
273 This operation retrieves multiple ROWIDs by scanning index SPARE_PART_FORECAST_PK (ascending by key). 1
274 This operation retrieves a row of table SPARE_PART_FORECAST_TAB based on its ROWID. 1 1 53
275 This operation takes a row source and rejects some of the rows, returning the accepted rows.
276 This operation retrieves multiple ROWIDs by scanning index CUST_SCHED_PLAN_DEMAND_1_IX (ascending by key). 1 1
277 This operation retrieves a row of table CUST_SCHED_PLAN_DEMAND_TAB based on its ROWID. 1 1 40
278 This operation takes a row source and rejects some of the rows, returning the accepted rows.
279 This operation retrieves multiple ROWIDs by scanning index MPL_AK1 (ascending by key). 2 3
280 This operation retrieves a row of table MATERIAL_PROCUREMENT_LIST_TAB based on its ROWID. 1 1 52
281 This operation retrieves a single ROWID by an index lookup of ACTIVITY_PK. 1 7
282 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 2 1 59
283 This operation retrieves a single ROWID by an index lookup of PROJECT_PRODUCT_STRUCTURE_PK. 1
284 This operation retrieves a row of table PROJECT_PRODUCT_STRUCTURE_TAB based on its ROWID. 1 1 12
285 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 3 1 71
286 This operation retrieves all rows of table PROCURED_MATERIAL_TAB using a full table scan. 2 77 616
287 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 6 1 79
288 This operation retrieves all rows of table PROCURED_MATERIAL_TAB using a full table scan. 2 273 2730
289 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 9 1 89
290 This operation takes a row source and rejects some of the rows, returning the accepted rows.
291 This operation retrieves multiple ROWIDs by scanning index HPM_PART_SUPPLY_DEMAND_PK (ascending by key). 1
292 This operation retrieves a row of table HPM_PART_SUPPLY_DEMAND_TAB based on its ROWID. 1 1 64
293 This operation takes a row source and rejects some of the rows, returning the accepted rows.
294 This operation retrieves multiple ROWIDs by scanning index SUPP_SCHED_PLAN_SUPPLY_1_IX (ascending by key). 1 1
295 This operation retrieves a row of table SUPP_SCHED_PLAN_SUPPLY_TAB based on its ROWID. 1 1 27
296 This operation takes a row source and rejects some of the rows, returning the accepted rows.
297 This operation retrieves multiple ROWIDs by scanning index ORDER_QUOTATION_LINE_2_IX (ascending by key). 3 27
298 This operation retrieves a row of table ORDER_QUOTATION_LINE_TAB based on its ROWID. 3 1 48
299 This operation takes a row source and rejects some of the rows, returning the accepted rows.
300 This operation retrieves all ROWIDs via a full index lookup of PROMISE_INVENTORY_ORDER_PK. 1
301 This operation retrieves a row of table PROMISE_INVENTORY_ORDER_TAB based on its ROWID. 1 1 46
302 This operation takes a row source and rejects some of the rows, returning the accepted rows.
303 This operation accepts two sets of rows and returns the conglomerate of both sets, including all duplicates.
304 This operation yields the result of performing the query of views. 61 25 1000
305 This operation compares each row of its first child row source with all rows of its second child row source, joining those row pairs for which some condition holds. 62 25 1550
306 62 25 1550
307 This operation retrieves all rows of table INVENTORY_PART_TAB using a full table scan. 169 138200 6633600
308 This operation retrieves all rows of table INVENTORY_PART_PLANNING_TAB using a full table scan. 56 137844 3721788
309 This operation retrieves all rows of table MANUF_STRUCTURE_TAB using a full table scan. 107 132824 5844256
310 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 358 133076 9448396
311 This operation retrieves all rows of table PURCHASE_PART_SUPPLIER_TAB using a full table scan. 103 128836 3607408
312 This operation performs an anti join by taking its two child row sources and hashing their join columns to find row pairs which satisfy the join condition. 708 133076 13174524
313 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 1228 133674 19650078
314 This operation counts the number of rows in its child row source.
315 This operation takes a row source and rejects some of the rows, returning the accepted rows.
316 This plan step has no supplementary description information.
317 This operation retrieves all rows of table INVENTORY_PART_TAB using a full table scan. 169 138200 6633600
318 This operation retrieves all rows of table INVENTORY_PART_PLANNING_TAB using a full table scan. 56 137844 3721788
319 This operation retrieves all rows of table MANUF_STRUCTURE_TAB using a full table scan. 107 132824 5844256
320 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 358 133076 9448396
321 This operation retrieves all rows of table PURCHASE_PART_SUPPLIER_TAB using a full table scan. 103 128836 3607408
322 This operation performs an anti join by taking its two child row sources and hashing their join columns to find row pairs which satisfy the join condition. 708 133076 13174524
323 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 1228 133674 19650078
324 This operation counts the number of rows in its child row source.
325 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition.
326 This operation reorders the rows so that they are retrieved hierarchically (parent rows precede their children rows).
327 This operation takes a row source and rejects some of the rows, returning the accepted rows.
328 This step in the plan designates this statement as a SELECT statement.
and
SELECT l.*
FROM (SELECT ms.component_part, ip."DESCRIPTION", ms.qty_per_assembly, ipp.
mrp_order_code, ip.planner_buyer, ip.type_code, pps.vendor_no,
pps.vendor_manuf_leadtime, ipp.min_order_qty, ipp.
maxweek_supply period_order_quantity, ipp.safety_stock,
ifsapp.inventory_part_in_stock_api.GET_INVENTORY_QTY_ONHAND(
ms.contract, ms.component_part, NULL) qty_onhand,
ip.estimated_material_cost, (SELECT SUM(ex.qty_demand)
FROM ifsinfo.km_order_supply_demand_mfg ex
WHERE ex.date_required
BETWEEN TO_DATE(SYSDATE)
AND TO_DATE(
'01/05/2007',
'DD/MM/YYYY') + 1 - 1 /
((60 * 60) * 24)
AND ex.part_no = ms.
component_part
AND ex.contract = ms.
contract
GROUP BY ex.part_no)
manu_sum_dmd, (SELECT SUM(ex.qty_demand)
FROM ifsinfo.km_order_supply_demand_pur ex
WHERE ex.date_required BETWEEN TO_DATE(
SYSDATE) AND TO_DATE('01/05/2007',
'DD/MM/YYYY') + 1 - 1 / ((60 * 60) *
24)
AND ex.part_no = ms.component_part
AND ex.contract = ms.contract
GROUP BY ex.part_no) purch_sum_dmd
FROM ifsapp.manuf_structure ms, ifsapp.inventory_part ip, ifsapp.
inventory_part_planning ipp, ifsapp.purchase_part_supplier
pps
WHERE ms.component_part = ip.part_no
AND ms.contract = ip.contract
AND ms.component_part = ipp.part_no
AND ms.contract = ipp.contract
AND ms.component_part = pps.part_no(+)
AND ms.contract = pps.contract(+)
AND NVL(pps.primary_vendor_db, 'Y') = 'Y'
CONNECT BY PRIOR ms.component_part = ms.part_no
AND PRIOR ms.contract = ms.contract
AND ms.eff_phase_in_date <= SYSDATE
AND NVL(ms.eff_phase_out_date, SYSDATE) >= SYSDATE
START WITH ms.part_no = 'K7501890'
AND ms.contract = 'OKMMN'
AND ms.bom_type = 'Manufacturing'
AND ms.eng_chg_level = '1') l
Get Explain Plan By:
Cost All Rows
Execution Steps:
23 SELECT STATEMENT
22 VIEW
21 FILTER
20 CONNECT BY (WITH FILTERING)
9 FILTER
8 COUNT
7 HASH JOIN
1 TABLE ACCESS (FULL), INVENTORY_PART_TAB (IFSAPP)
6 HASH JOIN (OUTER)
4 HASH JOIN
2 TABLE ACCESS (FULL), INVENTORY_PART_PLANNING_TAB (IFSAPP)
3 TABLE ACCESS (FULL), MANUF_STRUCTURE_TAB (IFSAPP)
5 TABLE ACCESS (FULL), PURCHASE_PART_SUPPLIER_TAB (IFSAPP)
19 HASH JOIN
10 CONNECT BY PUMP
18 COUNT
17 HASH JOIN
11 TABLE ACCESS (FULL), INVENTORY_PART_TAB (IFSAPP)
16 HASH JOIN (OUTER)
14 HASH JOIN
12 TABLE ACCESS (FULL), INVENTORY_PART_PLANNING_TAB (IFSAPP)
13 TABLE ACCESS (FULL), MANUF_STRUCTURE_TAB (IFSAPP)
15 TABLE ACCESS (FULL), PURCHASE_PART_SUPPLIER_TAB (IFSAPP)
Step Description Est Cost Est Row Count Est Byte Count
1 This operation retrieves all rows of table INVENTORY_PART_TAB using a full table scan. 169 138200 6633600
2 This operation retrieves all rows of table INVENTORY_PART_PLANNING_TAB using a full table scan. 56 137844 3721788
3 This operation retrieves all rows of table MANUF_STRUCTURE_TAB using a full table scan. 107 132824 5844256
4 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 358 133076 9448396
5 This operation retrieves all rows of table PURCHASE_PART_SUPPLIER_TAB using a full table scan. 103 128836 3607408
6 This operation performs an anti join by taking its two child row sources and hashing their join columns to find row pairs which satisfy the join condition. 708 133076 13174524
7 This operation takes its two child row sources and hashes their join columns to find row pairs which satisfy the join condition. 1228 133674 19650078
8 This operation counts the number of rows in its child row source.
9 This operation takes a row source and rejects some of the rows, returning the accepted rows.
10 This plan step has no supplementary description information.
11 This operation retrieves all rows of table INVENTORY_PART_TAB using a full table scan. 169 138200 6633600
12 ThisI really do not understand.
If I use a simple example, it keeps the cost and explain plan the same.
Ie
SELECT part_no, "DESCRIPTION"
FROM inventory_partand
SELECT l.*
FROM (SELECT part_no, "DESCRIPTION"
FROM inventory_part) lhave the same cost plan.
This is what I would have expected.
How can it change so dramatically in my other example? -
T-code SUIM taking much more time for generating output for profie change.
Hi All
We want to extract report for profile addition and deletion for Users in ECC 6. While executing the the t-code SUIM it is taking much more time (taking more than 20 hrs). This problem is coming after patch application
Please give the solution/Suggest to minimize the time taken in report generation.
Thanks-
Guru Prasad DwivediHello Prasad,
The reason for the performance trouble is a new feature regarding the user change documents. Since note 874850 and 1015043 you will get a more complete overview about the changes regarding a user.
The disadvantage of that new feature is, that in some customer system usage scenario, the performance is very poor. That's the case, if the central change documents are intensivly used also by other applications and the tables CDPOS, CDHDR, ... contains a very big count of rows. Unfortunatly the user change documents can not be searched by the key columns of the central change docs. - so the bad response time can explained.
What now ... ?
There are some work arounds to get the change documents on faster way.
1st. - You can get the former report output and performance if you
would use the report RSUSR100 instead of the new RSUSR100N in
separate mode.
2nd. - If you want to use the new report RSUSR100N directly and only
want to get the information about the traditional topics
(content of USH* tables) you should only mark the search areas
on the tabstrip 'user attributes') to get a better performance.
- furthermore limit the date range, if possible
3rd. - You should regulary (monthly) archive the user relevant documents
for PFCG and IDENTITY from the central change documents.
As per our note 1079207 chapter 3 you can reload that archives
into more selective tables.
The selection for change documents will be rather faster over
reloaded archived documents than the documents in the
central change documents tables.
Best Regards,
Guilherme de Oliveira. -
AUDIO TO SCORE. I used that all the time for drum doubling for the following reasons:
In Logic 9 i always used audio to score for drum doubling because it had much more control over essential parameters than the drum replacement window. Parameters like: Granulation, Smooth Release and Attack Range made sure that i didn't have any flams, too few notes, too many notes etc etc. AND you could see in the sample editor (below the waveform) immediately the effect of the changes made in those parameters!
Now with these parameters gone and only the drum doubling function left, what was a real pro function has become much more cumbersome to use. You can no longer see in detail what changes in parameters does to the out-coming midi. And the lack of the detailed parameters makes drum doubling drop or miss notes, makes flams with the original drum track etc etc.... In short. The drum doubling function is inadequate for pro results.
So this is my suggestion: Apple probably wont reinstate audio to score as it was (i'd love it if they did, it's essential to me and others who does rock mixes in logic instead of protools). But you can do something that's even better:
In the audio file editor (previously the sample editor) make the old audio to score into an advanced drum doubling/replacement editor. Take the audio to score window and parameters and reinstate them BUT instead of outputting different note values make them output to a desired note of the users choice (e.g C1). Without opening the library. It cluters the window and often people want to use their own drum software than apples samples.
It's the realtime view in the bottom of the audiofile editor that makes a difference. And the missing parameters. Without these things a good outcome is based on luck rather than visual reference.I was doing drum replacement ( adding ) with Audio-to-score for years, and must say, drum replacement is working for me without any flams and much better and 2x faster. I think it is pro feature, with advanced transient detector. Only problem is velocity,as in Audio-to-score.
If automatic threshold not working on some material, you can do fine transient edits in audio editor with visual realtime feedback, you can change output note and delay globally. Also you can hear ( in compare with Audio-to-score), that's why library is opened and sample replacement -after, not difficult to do. -
What is much more efficient for building Web Services: RSS or Axis
Hi ,
i am focusing on a new feature in our web seftware product and we wish to integrate a web service communication allowing our customers to retrieve all needed data.
Ok now the problem, as far as the technical choice is concerned , i heard a lot about RSS and also about some SOAP engines ( axis, xfire,...) , si my question is which the best choice? what make one better then the other ? which is much more secure once implemented ?
please i am eager to hear your advises!!
thanksHello, has anyone done any integration with Java api or web services? Is any information available?
-
I have several encrypted .dmg files on my macbook air running OS X 10.10.1 I have had them for years with no problems. Now suddenly, in the finder, at the bottom of the finder window where it shows the number of items and free space for a disk, it shows more free space than the full size of the .dmg file. Typically it will show about 200MB for a 100 MB file. Obviously, this is a bug, but I can find no information or discussions about it anywhere.
Does anyone have the same problem? Any ideas how to fix it?Thanks for the ideas. Unfortunately, it didn't work.
I rebuilt the spotlight index as suggested.
I tried it twice, rebooting the computer a couple of time along the way.
Below you can see the actual file as it occurs in the finder in its unopened form.
Now, below here is what the finder reports at the bottom of the finder window when the file is opened and added as a virtual disk.
Note that the total file size is 102.5 Mb
Yet the finder says it has 234.5 Mb free!
The actual size of the files on the disk add up to about 60 Mb
This occurs with several similar dmg files.
Any other ideas or experiences would be appreciated. -
The New photos app is taking a very long time to upload images. It stays a very long time at 20,104 for example. When I check the Activity Monitor (Network) it shows that the computer is actually uploading stuff. After about 2 hours, only 20 Pics&Videos are uploaded. The uploaded pics and videos are about 500MB while the data sent is around 1GB. I am positive that Photos is the only thing uploading data at the moment.
Anyone else facing this problem?It can take days, even weeks.
Tell me 2 things and I will tell you the estimated upload time.
1 How big is your Library (in GB)
2 How fast is your upload speed.
Or you can just use the upload time calculator and do it yourself -
CLI/ASDM shows much more traffic on FWSM than via SNMP?
Hi!
I've noticed a strange behaviour of our FWSM (Release 3.1.3). When starting the ASDM or using CLI (show interface XY stats), both ways show the same amount of traffic. It's the same amount of traffic the 6513 router beyond also measures.
But when i try to use SNMP on the OIDs ifOutOctets/ifInOctets, i get way too little traffic. Also the packet counter shows way too little packets than i get via CLI or the ASDM frontend.
Is it a bug of the firmware or does the FSWM count the traffic and packets in a different way?
Can someone please verify this?
Thanks!Hi,
Do you see any errors on ASA Eth0/1(to switch)? Running the similar speed tests with wired and wifi? Client traffic on network is same as well?
Thx
MS -
How come geekbench shows 13% more performance for mbp
Hello
So i compared geekbench results for both mbp retina 13 with 2.9ghz processor and the mba 13 with 2.0 ghz processor
And on average the mbp scored 13% more.
So my question is , how come while its processor is 45% faster, the mbp scored only 13% more in geekbench?
EA couple of points I can think of:
1) Vmware or other emulations can run apps at native speed on the intel based macs, so I concur that there shouldn't be any lag using Windows app through Vmware
2) Powerpoint and other Office apps, to my knowledge, need Rosetta to work on Leopard. This has been shown in various benchmark tests to start up and function much slower than the PowerPC based macs. As you may already know, Rosetta works in the background and you are not aware of it working. It is done automatically when opening the apps in Leopard
3) As for Powerpoint files being saved as Keynote and the resultant keynote being dreadfully slow. Try this: Open Keynote and make a quick presentation with lots of processor intensive builds/actions and see if you notice the lag. If you do, then the problem lies with your computer and you should have a Mac Genius look at it. If you do NOT notice any performance issues with it, then you should look at the particular keynote file (the one that was exported from Powerpoint). Right click the file and make sure "open with Rosetta" is NOT checked off. Uncheck it and open the file again and you should see performance improvement
Good luck
RezF -
New network (and much more) monitor for XFCE panel
A few years ago I wrote a tiny app to show a text network monitor in the XFCE panel, resembling the previous one I was familiarized with (in KDE?).
The past month I started fixing a bug and ended in a full rewrite, but keeping the original simplicity (at least in the panel bar) despite that now reports far more than the network activity.
The installation instructions are the same: download a single file (no dependencies), compile it, add a Generic Monitor Applet (XFCE) to the panel and configure it to load the new executable.
I have updated the wiki page, but the full instructions and code is now hosted at github: "Hacker's Monitor for XFCE". Yes, it has a new name also.
Here follows a screenshot with the mouse over the applet to open the tooltip (yes, I was intentionally doing a dd from /dev/sda into /dev/null ):
https://github.com/lightful/xfce-hkmon/ … /hkmon.png
-- mod edit: read the Forum Etiquette and only post thumbnails http://wiki.archlinux.org/index.php/For … s_and_Code [jwr] --
Last edited by cgarcia (2015-01-07 22:40:54)Moving to Community Contributions...
-
So my kids got it all figured out but I pay for the phone so I thought I would turn it off for a few days and see if his attitude changed when I go to suspend service it makes me think how hard it might be to reactivate service so what are your thoughts on that and if you have any ideas to help
I am not sure if this will work, but you could look in Family Base. With this source you can control who they call, text, and what website they go to. It is just $5 per month. That may control their usage. Try calling Customer Service (*611) about it.
I hope it helps! Good Luck!
Here are some links about it:
FamilyBase FAQs | Verizon Wireless
How to Use Guide: Verizon FamilyBase | Verizon Wireless -
FF-6 is not working for Bank statement View
Hi SAP Friends,
Could you please tell me how we need to print the bank statement in FF_6,
I have given then application type as 0001 and i have given the all the house bank and statement number and date, But i am not getting any statement in FF_6.
I am getting the error like LIST CONTAINS NO DATA.
Please suggest the same.
Regards,
Anand YHello,
Give application as 0001
Do not give any other things
Just give statement number from 1 to 9999
then give 01 for GL and 02 for bank sub ledger
You will get it.
This is only problem in the selection parameters. If you correct the selection parameters surely you will get the statement.
Regards,
Ravi -
How much future useage for CS6 for a stand-alone photographer?
I'm a semi professional small-scale photographer. It's a hobby, but I do some commercial work. It certainly isn't a living (I have other income)
I've been on CS6 for some time. It does absolutely everything that I need, and in fact it's too much. I could do with an application that's somewhere between Lightroom+Elements and CS6. It doesn't exist.
But as I've paid for CS6 I'm quite happy to keep on using it ad infinitum - after all, with no more upgrades (CS7 etc) it's free now! But at a realistic level how long can I run it for, do you think? I run a good spec desktop PC with Windows 7. I use CS6 in 64bit mode, and also Bridge. Assuming my PC fails in 12 months time (it's three years old) I will get a new destop using Windows 8. CS6 will run under Windows 8, so no problems there. My new desktop may last 5 years? That gives me a total of 6 years using CS6.
Of course, there will need to be support from Adobe for CS6, in particular if any significant bugs arise. But why should there be new bugs, unless they are in relation to third-party plugins etc? CS6 has been out for some time. Adobe are not going to change it (they have their head stuck in a cloud) so it shouldn't get broken. Or am I wrong in thinking that?
Any thoughts?
To upgrade to CS6 http://www.adobe.com/uk/products/catalog/cs6._sl_id-contentfilter_sl_catalog_sl_software_s l_creativesuite6.html?start=10
In the Photoshop CS6 row, click the Buy link
"I want to buy:", click on the dropdown menu and select Upgrade
click "I own" and on the dropdown menu select the relevant product which you already own
Follow the prompts from there to complete the purchaseCurt Y wrote:
That is the problem you have with any upgrade if you use the new features.
CC is more a trap then an upgrade.
A Photoshop only user is better off staying with CS6 and not be being trap.
While I would prefer to have the new features being added to ACR. I do not need the new improved old features with their new interfaces, new icons and new bugs. These change post processing work flow they only seem to slow user down and make more work for them. I also do not need or want the 3D tools. Photoshop is not a 3D program by design. Photoshop 3D feature is more an add-on and lacks features found in real 3D creation programs.
I want a stable image editor. While CS6 has bugs I know which bugs effect my work and know my way around most. Photoshop CS6 still occasionally crashes from time to time but now on my new machine it only seems to happen in SciptUIFlex and I can use Photoshop for days without a crash. Today was not one of them.
To tell you the truth all upgrade after CS3 have been plagued with bugs. I was not looking forward to having to upgrade to CS7.
It look like CC has its share of bugs too. Though CC seems to be starting off better then CS6 did. While there have been a few dozen bugs reported in Adobe's Photoshop Family problem forum. That is not a large number and most are not problems with CC crashing. -
Since loading Lion, I've experienced much more instability than Snow Leopard. In particular, Mail crashes with regularity, full-screen apps seem to run slower and show the beach ball more often for longer, etc. I love the features, but I'm disappointed with the performance. Any help coming from Apple? I've been sending them so many reports after crashes, that their file must be full!
Summoning max. courage, I did what you advised. Here is the result. What does this tell you? My Lion 7.2 (mid 2011 iMac) has several annoying glitches (which I have so far tolerated through gritted teeth) but none that have actually stopped me working.
BTW, I see several items involving CleanMyMac which I did not know I had. It is generally villified as a trouble-maker. Spotlight can't find an app. or a utility of that name. How can I get rid of what's there please? Just delete?
Last login: Thu Nov 3 20:55:11 on console
Steve-Kirkbys-iMac:~ stevekirkby$ kextstat -kl | awk ' !/apple/ { print $6 $7 } '
com.AmbrosiaSW.AudioSupport(4.0)
Steve-Kirkbys-iMac:~ stevekirkby$ sudo launchctl list | sed 1d | awk ' !/0x|apple|com\.vix|edu\.|org\./ { print $3 } '
Password:
com.openssh.sshd
com.stclairsoft.DefaultFolderXAgent
com.microsoft.office.licensing.helper
com.bombich.ccc.scheduledtask.067493DB-2728-4DF3-87D8-092EF69086E8
com.bombich.ccc
com.adobe.SwitchBoard
Steve-Kirkbys-iMac:~ stevekirkby$ launchctl list | sed 1d | awk ' !/0x|apple|edu\.|org\./ { print $3 } '
com.sony.PMBPortable.AutoRun
uk.co.markallan.clamxav.freshclam
com.veoh.webplayer.startup
com.macpaw.CleanMyMac.volumeWatcher
com.macpaw.CleanMyMac.trashSizeWatcher
com.adobe.ARM.202f4087f2bbde52e3ac2df389f53a4f123223c9cc56a8fd83a6f7ae
com.adobe.AAM.Scheduler-1.0
Steve-Kirkbys-iMac:~ stevekirkby$ ls -1A {,/}Library/{Ad,Compon,Ex,Fram,In,La,Mail/Bu,P*P,Priv,Qu,Scripti,Sta}* 2> /dev/null
/Library/Components:
/Library/Extensions:
/Library/Frameworks:
AEProfiling.framework
AERegistration.framework
ApplicationEnhancer.framework
AudioMixEngine.framework
FxPlug.framework
NyxAudioAnalysis.framework
PluginManager.framework
ProFX.framework
ProMetadataSupport.framework
TSLicense.framework
iLifeFaceRecognition.framework
iLifeKit.framework
iLifePageLayout.framework
iLifeSQLAccess.framework
iLifeSlideshow.framework
/Library/Input Methods:
/Library/Internet Plug-Ins:
AdobePDFViewer.plugin
EPPEX Plugin.plugin
Flash Player.plugin
Flip4Mac WMV Plugin.plugin
JavaAppletPlugin.plugin
Quartz Composer.webplugin
QuickTime Plugin.plugin
SharePointBrowserPlugin.plugin
SharePointWebKitPlugin.webplugin
Silverlight.plugin
flashplayer.xpt
iPhotoPhotocast.plugin
nsIQTScriptablePlugin.xpt
/Library/LaunchAgents:
com.adobe.AAM.Updater-1.0.plist
com.sony.PMBPortable.AutoRun.plist
/Library/LaunchDaemons:
com.adobe.SwitchBoard.plist
com.apple.remotepairtool.plist
com.bombich.ccc.plist
com.bombich.ccc.scheduledtask.067493DB-2728-4DF3-87D8-092EF69086E8.plist
com.microsoft.office.licensing.helper.plist
com.stclairsoft.DefaultFolderXAgent.plist
/Library/PreferencePanes:
.DS_Store
Application Enhancer.prefPane
Default Folder X.prefPane
DejaVu.prefPane
Flash Player.prefPane
Flip4Mac WMV.prefPane
/Library/PrivilegedHelperTools:
com.bombich.ccc
com.microsoft.office.licensing.helper
com.stclairsoft.DefaultFolderXAgent
/Library/QuickLook:
iWork.qlgenerator
/Library/QuickTime:
AppleIntermediateCodec.component
AppleMPEG2Codec.component
DesktopVideoOut.component
DivX 6 Decoder.component
FCP Uncompressed 422.component
Flip4Mac WMV Advanced.component
Flip4Mac WMV Export.component
Flip4Mac WMV Import.component
LiveType.component
/Library/ScriptingAdditions:
.DS_Store
Adobe Unit Types.osax
Default Folder X Addition.osax
/Library/StartupItems:
Library/Address Book Plug-Ins:
Library/Frameworks:
EWSMac.framework
Library/Input Methods:
.localized
Library/Internet Plug-Ins:
Library/LaunchAgents:
com.adobe.AAM.Updater-1.0.plist
com.adobe.ARM.202f4087f2bbde52e3ac2df389f53a4f123223c9cc56a8fd83a6f7ae.plist
com.macpaw.CleanMyMac.trashSizeWatcher.plist
com.macpaw.CleanMyMac.volumeWatcher.plist
com.veoh.webplayer.startup.plist
uk.co.markallan.clamxav.freshclam.plist
Library/PreferencePanes:
.DS_Store
Perian.prefPane
WindowShade X.prefPane
Library/QuickTime:
AC3MovieImport.component
Perian.component
Library/ScriptingAdditions:
Steve-Kirkbys-iMac:~ stevekirkby$
Maybe you are looking for
-
I have been working on a wedding slideshow for days and have over 3,000 pictures in albums on iPhoto. It suddenly will not open without upgrading to Aperture and I can't find any of my photos!!!! I need these photos, to complete the video, not to m
-
How to get Zen Touch to work on Windows Vista without PFS (worked!)
CHow to get Zen Touch to work on Windows Vista without PFS (worked!)? ***THIS WORKED*** For all of you that want to get their music out of the Zen touch, and are stuck with Vista and .0.03 firmware (non vista recognisable), and don't want to erase ev
-
SQLplus doesn't allow login after database creation login
I can login in to SQLplus right after the DB config assist completes but after I close out of SQLplus I cannot login again. I get the error messeages: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist.
-
"A Scheduled Work To Do took over one minute to run." {Another solution}
Hi there, I'm a complete newbie and ran across this error when our server {4.11} started giving it this morning. First it gave me all sorts of "terminating thread" errors and reporting collisions though the switch wasn't. Then I could only get 2/100
-
10.5.6 upgrade seemed to wipe out some application preferences
I had some minor issues after upgrading to 10.5.6. I have worked out most (hopefully all) of these issues. I am just wondering if there is something that i did incorrectly that caused this. After upgrading to 10.5.6 I restarted when prompted by the s