Help in Performance Tunning
Hi,
I am looking for some help in tuning a query and details are below.
SELECT NVL(B.START_DATE_TIME,
A.START_DATE_TIME) START_DATE,
NVL(B.CUST_PRODUCTION_SEQ_NUM,
A.CUST_PRODUCTION_SEQ_NUM) PROD_NUM,
A.HEADER_ID NEW_HEADER_ID,
B.HEADER_ID OLD_HEADER_ID,
A.LINE_ID,
B.LINE_ID,
A.QTY_TYPE_CODE NEW_CODE,
B.QTY_TYPE_CODE OLD_CODE,
NVL(B.SHIP_FROM_ORG_ID,
A.SHIP_FROM_ORG_ID) SHIP_FROM_ORG_ID,
-- hrorg.name ship_from_name ,
NVL(B.SHIP_TO_ORG_ID,
A.SHIP_TO_ORG_ID) SHIP_TO_ORG_ID,
NVL(B.BILL_TO_ADDRESS_ID,
A.BILL_TO_ADDRESS_ID) BILL_TO_ADDRESS_ID,
NVL(B.SHIP_TO_ADDRESS_ID,
A.SHIP_TO_ADDRESS_ID) SHIP_TO_ADDRESS_ID,
NVL(B.SHIP_TO_NAME_EXT,
A.SHIP_TO_NAME_EXT) SHIP_TO_NAME,
NVL(B.INTRMD_SHIP_TO_ID,
A.INTRMD_SHIP_TO_ID) INTRMD_SHIP_TO_ID,
NVL(B.CUSTOMER_ITEM_ID,
A.CUSTOMER_ITEM_ID) CUSTOMER_ITEM_ID,
--mci.customer_item_desc customer_item_desc,
NVL(B.INVENTORY_ITEM_ID,
A.INVENTORY_ITEM_ID) INVENTORY_ITEM_ID,
NVL(B.ITEM_DETAIL_SUBTYPE,
A.ITEM_DETAIL_SUBTYPE) ITEM_DETAIL_SUBTYPE,
FND1.MEANING DETAIL_SUBTYPE,
NVL(B.UOM_CODE,
A.UOM_CODE) UOM_CODE,
NVL(B.CUST_PO_NUMBER,
A.CUST_PO_NUMBER) CUST_PO_NUMBER,
NVL(B.INDUSTRY_ATTRIBUTE1,
A.INDUSTRY_ATTRIBUTE1) CUST_RECORD_YEAR,
A.ITEM_DETAIL_QUANTITY,
A.ITEM_DETAIL_TYPE,
FND2.MEANING NEW_DETAIL_TYPE,
B.ITEM_DETAIL_QUANTITY,
B.ITEM_DETAIL_TYPE,
FND3.MEANING OLD_DETAIL_TYPE
FROM RLM_SCHEDULE_LINES_ALL A,
(SELECT * FROM RLM_SCHEDULE_LINES_ALL b_in
WHERE TRUNC(b_in.START_DATE_TIME) >=
(SELECT TRUNC(SCHED_HORIZON_START_DATE)
FROM RLM_SCHEDULE_HEADERS
WHERE HEADER_ID = :P_NEW_HEADER_ID)---
AND TRUNC(b_in.START_DATE_TIME) <=
(SELECT TRUNC(SCHED_HORIZON_END_DATE)
FROM RLM_SCHEDULE_HEADERS
WHERE HEADER_ID = :P_NEW_HEADER_ID)
AND HEADER_ID = (SELECT header_id
FROM apps.rlm_schedule_headers_all
WHERE header_id =
(SELECT MAX(rsha.header_id)
FROM apps.rlm_schedule_headers_all rsha,
apps.rlm_schedule_lines_all rsla
WHERE rsha.customer_id = :p_customer_id
AND rsha.schedule_type = :p_schedule_type
AND rsla.inventory_item_id = b_in.inventory_item_id ---
AND rsla.org_id = rsha.org_id
AND (((rsla.cust_po_number = b_in.cust_po_number)AND
EXISTS (SELECT 'x'
FROM FND_LOOKUP_VALUES_VL FLV,
RA_CUSTOMERS RC
WHERE FLV.LOOKUP_TYPE = 'TEST_RLM_CHECK_CUST'
AND FLV.MEANING = RC.CUSTOMER_NAME
AND RC.CUSTOMER_ID = :P_CUSTOMER_ID))
OR
NOT EXISTS (SELECT 'x'
FROM FND_LOOKUP_VALUES_VL FLV,
RA_CUSTOMERS RC
WHERE FLV.LOOKUP_TYPE = 'TEST_RLM_CHECK_CUST'
AND FLV.MEANING = RC.CUSTOMER_NAME
AND RC.CUSTOMER_ID = :P_CUSTOMER_ID) )---
and rsha.header_id = rsla.header_id
and rsla.ship_from_org_id = :p_ship_from_org_id
AND rsha.ece_tp_location_code_ext = :p_ece_tp_location_code_ext
AND NVL(rsha.header_ref_value_1, '1') =
NVL(rsha.header_ref_value_1, '1')
AND rsha.header_id NOT IN
(SELECT header_id
FROM apps.rlm_schedule_headers_all
WHERE attribute1 = :p_request_id)))) B,
--rlm_schedule_headers c,
-- hr_organization_units hrorg,
--mtl_customer_items mci,
FND_LOOKUPS FND1,
FND_LOOKUPS FND2,
FND_LOOKUPS FND3
-- ra_addresses_all radd2,
-- ra_site_uses_all rsu2
WHERE A.HEADER_ID(+) = :P_NEW_HEADER_ID
----AND B.HEADER_ID = :P_OLD_HEADER_ID
AND A.CUSTOMER_ITEM_ID(+) = B.CUSTOMER_ITEM_ID
AND A.SHIP_TO_ORG_ID(+) = B.SHIP_TO_ORG_ID
AND A.SHIP_FROM_ORG_ID(+) = B.SHIP_FROM_ORG_ID
AND A.INVENTORY_ITEM_ID(+) = B.INVENTORY_ITEM_ID
AND NVL(A.INTRMD_SHIP_TO_ID(+),
NVL(B.INTRMD_SHIP_TO_ID,
0)) = NVL(B.INTRMD_SHIP_TO_ID,
0)
AND A.ITEM_DETAIL_SUBTYPE(+) = B.ITEM_DETAIL_SUBTYPE
AND A.UOM_CODE(+) = B.UOM_CODE
AND NVL(A.CUST_PO_NUMBER(+),
NVL(B.CUST_PO_NUMBER,
0)) = NVL(B.CUST_PO_NUMBER,
0)
AND A.ITEM_DETAIL_TYPE(+) < :P_ITEM_DETAIL_TYPE
AND B.ITEM_DETAIL_TYPE < :P_ITEM_DETAIL_TYPE
AND TRUNC(A.START_DATE_TIME(+)) = TRUNC(B.START_DATE_TIME)
AND FND1.LOOKUP_CODE = NVL(A.ITEM_DETAIL_SUBTYPE,
B.ITEM_DETAIL_SUBTYPE)
AND FND1.LOOKUP_TYPE = :P_RLM_DETAIL_SUBTYPE_CODE
AND NVL(A.ITEM_DETAIL_TYPE,
'0') = FND2.LOOKUP_CODE
AND FND2.LOOKUP_TYPE = :P_RLM_DETAIL_TYPE_CODE
AND FND3.LOOKUP_CODE = B.ITEM_DETAIL_TYPE
AND A.SHIP_FROM_ORG_ID(+) = :P_SHIP_FROM_ORG_ID
AND B.SHIP_FROM_ORG_ID = :P_SHIP_FROM_ORG_ID
AND FND3.LOOKUP_TYPE = :P_RLM_DETAIL_TYPE_CODE
AND B.CUSTOMER_ITEM_ID IN
(SELECT DISTINCT CUSTOMER_ITEM_ID
FROM RLM_SCHEDULE_LINES_ALL
WHERE HEADER_ID = :P_NEW_HEADER_ID) &P_WHERE4 &P_WHERE3
-- CHANGES
&P_WHERE_DATE_A
UNION
SELECT NVL(A.START_DATE_TIME,
B.START_DATE_TIME) START_DATE,
NVL(A.CUST_PRODUCTION_SEQ_NUM,
B.CUST_PRODUCTION_SEQ_NUM) PROD_NUM,
A.HEADER_ID NEW_HEADER_ID,
B.HEADER_ID OLD_HEADER_ID,
A.LINE_ID,
B.LINE_ID,
A.QTY_TYPE_CODE NEW_CODE,
B.QTY_TYPE_CODE OLD_CODE,
NVL(A.SHIP_FROM_ORG_ID,
B.SHIP_FROM_ORG_ID) SHIP_FROM_ORG_ID,
-- hrorg.name ship_from_name ,
NVL(A.SHIP_TO_ORG_ID,
B.SHIP_TO_ORG_ID) SHIP_TO_ORG_ID,
NVL(A.BILL_TO_ADDRESS_ID,
B.BILL_TO_ADDRESS_ID) BILL_TO_ADDRESS_ID,
NVL(A.SHIP_TO_ADDRESS_ID,
B.SHIP_TO_ADDRESS_ID) SHIP_TO_ADDRESS_ID,
NVL(A.SHIP_TO_NAME_EXT,
B.SHIP_TO_NAME_EXT) SHIP_TO_NAME,
NVL(A.INTRMD_SHIP_TO_ID,
B.INTRMD_SHIP_TO_ID) INTRMD_SHIP_TO_ID,
NVL(A.CUSTOMER_ITEM_ID,
B.CUSTOMER_ITEM_ID) CUSTOMER_ITEM_ID,
--mci.customer_item_desc customer_item_desc,
NVL(A.INVENTORY_ITEM_ID,
B.INVENTORY_ITEM_ID) INVENTORY_ITEM_ID,
NVL(A.ITEM_DETAIL_SUBTYPE,
B.ITEM_DETAIL_SUBTYPE) ITEM_DETAIL_SUBTYPE,
FND1.MEANING DETAIL_SUBTYPE,
NVL(A.UOM_CODE,
B.UOM_CODE) UOM_CODE,
NVL(A.CUST_PO_NUMBER,
B.CUST_PO_NUMBER) CUST_PO_NUMBER,
NVL(A.INDUSTRY_ATTRIBUTE1,
B.INDUSTRY_ATTRIBUTE1) CUST_RECORD_YEAR,
A.ITEM_DETAIL_QUANTITY,
A.ITEM_DETAIL_TYPE,
FND2.MEANING NEW_DETAIL_TYPE,
B.ITEM_DETAIL_QUANTITY,
B.ITEM_DETAIL_TYPE,
FND3.MEANING OLD_DETAIL_TYPE
FROM RLM_SCHEDULE_LINES_ALL A,
(SELECT * FROM RLM_SCHEDULE_LINES_ALL b_in
WHERE TRUNC(b_in.START_DATE_TIME) >=
(SELECT TRUNC(SCHED_HORIZON_START_DATE)
FROM RLM_SCHEDULE_HEADERS
WHERE HEADER_ID = :P_NEW_HEADER_ID)
AND HEADER_ID = (SELECT header_id
FROM apps.rlm_schedule_headers_all
WHERE header_id =
(SELECT MAX(rsha.header_id)
FROM apps.rlm_schedule_headers_all rsha,
apps.rlm_schedule_lines_all rsla
WHERE rsha.customer_id = :p_customer_id
AND rsha.schedule_type = :p_schedule_type
AND rsla.inventory_item_id = b_in.inventory_item_id ---
AND rsla.org_id = rsha.org_id
AND (((rsla.cust_po_number = b_in.cust_po_number)AND
EXISTS (SELECT 'x'
FROM FND_LOOKUP_VALUES_VL FLV,
RA_CUSTOMERS RC
WHERE FLV.LOOKUP_TYPE = 'TEST_RLM_CHECK_CUST'
AND FLV.MEANING = RC.CUSTOMER_NAME
AND RC.CUSTOMER_ID = :P_CUSTOMER_ID))
OR
NOT EXISTS (SELECT 'x'
FROM FND_LOOKUP_VALUES_VL FLV,
RA_CUSTOMERS RC
WHERE FLV.LOOKUP_TYPE = 'TEST_RLM_CHECK_CUST'
AND FLV.MEANING = RC.CUSTOMER_NAME
AND RC.CUSTOMER_ID = :P_CUSTOMER_ID) )---
and rsha.header_id = rsla.header_id
and rsla.ship_from_org_id = :p_ship_from_org_id
AND rsha.ece_tp_location_code_ext = :p_ece_tp_location_code_ext
AND NVL(rsha.header_ref_value_1, '1') =
NVL(rsha.header_ref_value_1, '1')
AND rsha.header_id NOT IN
(SELECT header_id
FROM apps.rlm_schedule_headers_all
WHERE attribute1 = :p_request_id)))) B,
--rlm_schedule_headers c,
-- hr_organization_units hrorg,
--mtl_customer_items mci,
FND_LOOKUPS FND1,
FND_LOOKUPS FND2,
FND_LOOKUPS FND3
-- ra_addresses_all radd2,
-- ra_site_uses_all rsu2
WHERE A.HEADER_ID = :P_NEW_HEADER_ID
---- AND B.HEADER_ID(+) = :P_OLD_HEADER_ID
--a.header_id=c.header_id and
-- a.header_id = 803 and
-- b.header_id (+) = 804 and
AND B.CUSTOMER_ITEM_ID(+) = A.CUSTOMER_ITEM_ID
AND B.SHIP_TO_ORG_ID(+) = A.SHIP_TO_ORG_ID
AND B.SHIP_FROM_ORG_ID(+) = A.SHIP_FROM_ORG_ID
AND B.INVENTORY_ITEM_ID(+) = A.INVENTORY_ITEM_ID
AND NVL(B.INTRMD_SHIP_TO_ID(+),
NVL(A.INTRMD_SHIP_TO_ID,
0)) = NVL(A.INTRMD_SHIP_TO_ID,
0)
AND B.ITEM_DETAIL_SUBTYPE(+) = A.ITEM_DETAIL_SUBTYPE
AND B.UOM_CODE(+) = A.UOM_CODE
AND NVL(B.CUST_PO_NUMBER(+),
NVL(A.CUST_PO_NUMBER,
0)) = NVL(A.CUST_PO_NUMBER,
0)
AND B.ITEM_DETAIL_TYPE(+) < :P_ITEM_DETAIL_TYPE
AND A.ITEM_DETAIL_TYPE < :P_ITEM_DETAIL_TYPE
AND TRUNC(B.START_DATE_TIME(+)) = TRUNC(A.START_DATE_TIME)
AND FND1.LOOKUP_CODE = NVL(B.ITEM_DETAIL_SUBTYPE,
A.ITEM_DETAIL_SUBTYPE)
AND FND1.LOOKUP_TYPE = :P_RLM_DETAIL_SUBTYPE_CODE
AND A.ITEM_DETAIL_TYPE = FND2.LOOKUP_CODE
AND FND2.LOOKUP_TYPE = :P_RLM_DETAIL_TYPE_CODE
AND NVL(B.ITEM_DETAIL_TYPE,
'0') = FND3.LOOKUP_CODE
AND A.SHIP_FROM_ORG_ID = :P_SHIP_FROM_ORG_ID
AND B.SHIP_FROM_ORG_ID(+) = :P_SHIP_FROM_ORG_ID
AND FND3.LOOKUP_TYPE = :P_RLM_DETAIL_TYPE_CODE
&P_WHERE5 &P_WHERE3
-- CHANGES
&P_WHERE_DATE_BThe above query is related to the Oracle Release Management 11.5.10.2
The main header table is RLM_SCHEDULE_HEADERS_ALL which contains the information like schedule_reference_number and other details. In one schedule there can be many item records for different dates which are stored in the child table RLM_SCHEDULE_LINES_ALL. Both the tables are linked with HEADER_ID. Each schedule in header table has one horizon start date and horizon end date. Customer used to send these schedules every day for each item because of there business needs.
The requirement is to create a query to calculate the Net Change between the two schedules (Between the new and old). All the item records from child table for new schedule will be printed but only those item records from old schedule will be printed where schedule date in child table is within the horizon start date and end date of new schedule.
There are following indexes on the table RLM_SCHEDULE_LINES_ALL
IDX$$_199350001 Normal INVENTORY_ITEM_ID, SHIP_TO_ORG_ID, SHIP_FROM_NAME_EXT
IDX$$_199350002 Normal HEADER_ID, INVENTORY_ITEM_ID
RLM_SCHEDULE_LINE_CUSTOM Normal ITEM_DETAIL_TYPE, HEADER_ID
RLM_SCHEDULE_LINE_N1 Normal HEADER_ID, INTERFACE_LINE_ID
RLM_SCHEDULE_LINE_N2 Normal SHIP_FROM_ORG_ID, SHIP_TO_ORG_ID, CUSTOMER_ITEM_ID
RLM_SCHEDULE_LINE_N99 Normal INVENTORY_ITEM_ID
RLM_SCHEDULE_LINE_U1 Normal LINE_ID
XXRLM_RLM_SCHEDULE_LINES Normal SHIP_TO_ORG_ID, SHIP_FROM_NAME_EXT, PROCESS_STATUS, ITEM_DETAIL_TYPE, INVENTORY_ITEM_ID, CUSTOMER_ITEM_ID
Database Version: 11.1.0.7.0Optimizer Parameters:
SQL> show parameter optimizer
NAME TYPE VALUE
_optimizer_push_pred_cost_based boolean TRUE
optimizer_capture_sql_plan_baselines boolean FALSE
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 11.1.0.6
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean FALSE
optimizer_use_invisible_indexes boolean FALSE
optimizer_use_pending_statistics boolean FALSE
optimizer_use_sql_plan_baselines boolean TRUE
SQL>
SQL> show parameter db_file_multi
NAME TYPE VALUE
db_file_multiblock_read_count integer 8
SQL>
SQL> show parameter db_block_size
NAME TYPE VALUE
db_block_size integer 8192
SQL>
SQL> show parameter cursor_sharing
NAME TYPE VALUE
cursor_sharing string EXACT
SQL>
SQL> column sname format a20
SQL> column pname format a20
SQL> column pval2 format a20
SQL>
SQL>
SQL> SELECT SNAME,
2 PNAME,
3 PVAL1,
4 PVAL2
5 FROM SYS.AUX_STATS$;
SNAME PNAME PVAL1 PVAL2
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 03-30-2011 06:20
SYSSTATS_INFO DSTOP 03-30-2011 06:20
SYSSTATS_INFO FLAGS 0
SYSSTATS_MAIN CPUSPEEDNW 976.063
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected
SQL>Output of the explain plan will be in the next thread because of size constraint.
Here is the output of explain plan
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
| Id | Operation | Name | R
| 0 | SELECT STATEMENT | |
| 1 | SORT UNIQUE | |
| 2 | UNION-ALL | |
|* 3 | FILTER | |
| 4 | NESTED LOOPS | |
| 5 | NESTED LOOPS | |
| 6 | NESTED LOOPS | |
|* 7 | HASH JOIN | |
| 8 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_LINES_ALL |
|* 9 | INDEX SKIP SCAN | RLM_SCHEDULE_LINE_CUSTOM |
|* 10 | HASH JOIN RIGHT OUTER | |
|* 11 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_LINES_ALL |
|* 12 | INDEX SKIP SCAN | RLM_SCHEDULE_LINE_CUSTOM |
| 13 | NESTED LOOPS | |
| 14 | NESTED LOOPS | |
| 15 | TABLE ACCESS BY INDEX ROWID | FND_LOOKUP_VALUES |
PLAN_TABLE_OUTPUT
|* 16 | INDEX RANGE SCAN | IDX$$_123E00001 |
|* 17 | INDEX RANGE SCAN | RLM_SCHEDULE_LINE_CUSTOM |
|* 18 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_LINES_ALL |
|* 19 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_HEADERS_ALL |
|* 20 | INDEX UNIQUE SCAN | RLM_SCHEDULE_HEADERS_U1 |
|* 21 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_HEADERS_ALL |
|* 22 | INDEX UNIQUE SCAN | RLM_SCHEDULE_HEADERS_U1 |
| 23 | TABLE ACCESS BY INDEX ROWID | FND_LOOKUP_VALUES |
|* 24 | INDEX RANGE SCAN | FND_LOOKUP_VALUES_U1 |
|* 25 | INDEX RANGE SCAN | FND_LOOKUP_VALUES_U1 |
| 26 | TABLE ACCESS BY INDEX ROWID | FND_LOOKUP_VALUES |
|* 27 | INDEX UNIQUE SCAN | RLM_SCHEDULE_HEADERS_U1 |
| 28 | SORT AGGREGATE | |
| 29 | NESTED LOOPS | |
| 30 | NESTED LOOPS | |
| 31 | NESTED LOOPS ANTI | |
|* 32 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_HEADERS_ALL |
|* 33 | INDEX RANGE SCAN | RLM_SCHEDULE_HEADERS_N3 |
|* 34 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_HEADERS_ALL |
|* 35 | INDEX UNIQUE SCAN | RLM_SCHEDULE_HEADERS_U1 |
|* 36 | INDEX RANGE SCAN | IDX$$_199350002 |
PLAN_TABLE_OUTPUT
|* 37 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_LINES_ALL |
| 38 | NESTED LOOPS | |
| 39 | NESTED LOOPS | |
| 40 | TABLE ACCESS BY INDEX ROWID | HZ_CUST_ACCOUNTS |
|* 41 | INDEX UNIQUE SCAN | HZ_CUST_ACCOUNTS_U1 |
| 42 | TABLE ACCESS BY INDEX ROWID | HZ_PARTIES | 5
|* 43 | INDEX UNIQUE SCAN | HZ_PARTIES_U1 |
|* 44 | INDEX RANGE SCAN | FND_LOOKUP_VALUES_U2 |
| 45 | NESTED LOOPS | |
| 46 | NESTED LOOPS | |
| 47 | TABLE ACCESS BY INDEX ROWID | HZ_CUST_ACCOUNTS |
|* 48 | INDEX UNIQUE SCAN | HZ_CUST_ACCOUNTS_U1 |
| 49 | TABLE ACCESS BY INDEX ROWID | HZ_PARTIES | 5
|* 50 | INDEX UNIQUE SCAN | HZ_PARTIES_U1 |
|* 51 | INDEX RANGE SCAN | FND_LOOKUP_VALUES_U2 |
| 52 | NESTED LOOPS | |
| 53 | NESTED LOOPS | |
| 54 | NESTED LOOPS | |
| 55 | NESTED LOOPS OUTER | |
| 56 | NESTED LOOPS | |
| 57 | TABLE ACCESS BY INDEX ROWID | FND_LOOKUP_VALUES |
PLAN_TABLE_OUTPUT
|* 58 | INDEX RANGE SCAN | IDX$$_123E00001 |
|* 59 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_LINES_ALL |
|* 60 | INDEX RANGE SCAN | RLM_SCHEDULE_LINE_CUSTOM |
|* 61 | VIEW PUSHED PREDICATE | |
|* 62 | FILTER | |
|* 63 | FILTER | |
|* 64 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_LINES_ALL |
|* 65 | INDEX RANGE SCAN | IDX$$_199350001 |
|* 66 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_HEADERS_ALL |
|* 67 | INDEX UNIQUE SCAN | RLM_SCHEDULE_HEADERS_U1 |
|* 68 | INDEX UNIQUE SCAN | RLM_SCHEDULE_HEADERS_U1 |
| 69 | SORT AGGREGATE | |
| 70 | NESTED LOOPS | |
| 71 | NESTED LOOPS | |
| 72 | NESTED LOOPS ANTI | |
|* 73 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_HEADERS_ALL |
|* 74 | INDEX RANGE SCAN | RLM_SCHEDULE_HEADERS_N3 |
|* 75 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_HEADERS_ALL |
|* 76 | INDEX UNIQUE SCAN | RLM_SCHEDULE_HEADERS_U1 |
|* 77 | INDEX RANGE SCAN | IDX$$_199350002 |
|* 78 | TABLE ACCESS BY INDEX ROWID | RLM_SCHEDULE_LINES_ALL |
PLAN_TABLE_OUTPUT
| 79 | NESTED LOOPS | |
| 80 | NESTED LOOPS | |
| 81 | TABLE ACCESS BY INDEX ROWID| HZ_CUST_ACCOUNTS |
|* 82 | INDEX UNIQUE SCAN | HZ_CUST_ACCOUNTS_U1 |
| 83 | TABLE ACCESS BY INDEX ROWID| HZ_PARTIES | 5
|* 84 | INDEX UNIQUE SCAN | HZ_PARTIES_U1 |
|* 85 | INDEX RANGE SCAN | FND_LOOKUP_VALUES_U2 |
| 86 | NESTED LOOPS | |
| 87 | NESTED LOOPS | |
| 88 | TABLE ACCESS BY INDEX ROWID| HZ_CUST_ACCOUNTS |
|* 89 | INDEX UNIQUE SCAN | HZ_CUST_ACCOUNTS_U1 |
| 90 | TABLE ACCESS BY INDEX ROWID| HZ_PARTIES | 5
|* 91 | INDEX UNIQUE SCAN | HZ_PARTIES_U1 |
|* 92 | INDEX RANGE SCAN | FND_LOOKUP_VALUES_U2 |
| 93 | TABLE ACCESS BY INDEX ROWID | FND_LOOKUP_VALUES |
|* 94 | INDEX RANGE SCAN | FND_LOOKUP_VALUES_U1 |
|* 95 | INDEX RANGE SCAN | FND_LOOKUP_VALUES_U1 |
| 96 | TABLE ACCESS BY INDEX ROWID | FND_LOOKUP_VALUES |
Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
3 - filter("HEADER_ID"= (SELECT "HEADER_ID" FROM "APPS"."RLM_SCHEDULE_HEADERS
"RLM_SCHEDULE_HEADERS_ALL" WHERE "HEADER_ID"= (SELECT MAX("RSHA"."
"APPS"."RLM_SCHEDULE_LINES_ALL" "RSLA","APPS"."RLM_SCHEDULE_HEADER
"RSHA","APPS"."RLM_SCHEDULE_HEADERS_ALL" "RLM_SCHEDULE_HEADERS_ALL
"RSHA"."HEADER_ID"="HEADER_ID" AND TO_NUMBER("ATTRIBUTE1")=1090072
"RSHA"."ECE_TP_LOCATION_CODE_EXT"='AG-60989' AND "RSHA"."CUSTOMER_
"RSHA"."SCHEDULE_TYPE"='PLANNING_RELEASE' AND NVL("RSHA"."HEADER_R
"RSLA"."INVENTORY_ITEM_ID"=:B1 AND "RSHA"."HEADER_ID"="RSLA"."HEAD
"RSLA"."SHIP_FROM_ORG_ID"=2904 AND ("RSLA"."CUST_PO_NUMBER"=:B2 AN
"AR"."HZ_CUST_ACCOUNTS" "CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APP
WHERE "B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=US
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742) OR NOT EXISTS (SELECT 0 FROM
"CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APPLSYS"."FND_LOOKUP_VALUES
"B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=USERENV(
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742)) AND "RSLA"."ORG_ID"="RSHA"."
7 - access("B_IN"."CUSTOMER_ITEM_ID"="CUSTOMER_ITEM_ID")
9 - access("HEADER_ID"=1197995)
PLAN_TABLE_OUTPUT
filter("HEADER_ID"=1197995)
10 - access("A"."CUSTOMER_ITEM_ID"(+)="B_IN"."CUSTOMER_ITEM_ID" AND
"A"."SHIP_TO_ORG_ID"(+)="B_IN"."SHIP_TO_ORG_ID" AND
"A"."SHIP_FROM_ORG_ID"(+)="B_IN"."SHIP_FROM_ORG_ID" AND
"A"."INVENTORY_ITEM_ID"(+)="B_IN"."INVENTORY_ITEM_ID" AND
"A"."ITEM_DETAIL_SUBTYPE"(+)="B_IN"."ITEM_DETAIL_SUBTYPE" AND "A".
AND TRUNC(INTERNAL_FUNCTION("A"."START_DATE_TIME"(+)))=TRUNC(INTER
IME")))
filter(NVL("A"."INTRMD_SHIP_TO_ID"(+),NVL("B_IN"."INTRMD_SHIP_TO_ID",0))=
SHIP_TO_ID",0) AND NVL("A"."CUST_PO_NUMBER"(+),NVL("B_IN"."CUST_PO
O_NUMBER",'0'))
11 - filter("A"."SHIP_FROM_ORG_ID"(+)=2904)
12 - access("A"."HEADER_ID"(+)=1197995)
filter("A"."HEADER_ID"(+)=1197995 AND TO_NUMBER("A"."ITEM_DETAIL_TYPE"(+)
16 - access("LOOKUP_TYPE"='RLM_DETAIL_TYPE_CODE' AND "VIEW_APPLICATION_ID"=0 A
"LANGUAGE"=USERENV('LANG'))
filter("SECURITY_GROUP_ID"="FND_GLOBAL"."LOOKUP_SECURITY_GROUP"("LV"."LOO
W_APPLICATION_ID"))
17 - access("LOOKUP_CODE"="B_IN"."ITEM_DETAIL_TYPE")
filter(TO_NUMBER("B_IN"."ITEM_DETAIL_TYPE")<3)
18 - filter("B_IN"."SHIP_FROM_ORG_ID"=2904 AND TRUNC(INTERNAL_FUNCTION("B_IN".
PLAN_TABLE_OUTPUT
>= (SELECT TRUNC(INTERNAL_FUNCTION("SCHED_HORIZON_START_DATE")) FR
"RLM"."RLM_SCHEDULE_HEADERS_ALL" "RLM_SCHEDULE_HEADERS_ALL" WHERE
NVL("ORG_ID",NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1
',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99)))=NVL(TO_NUMBE
INFO'),1,1),' ',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99))
TRUNC(INTERNAL_FUNCTION("B_IN"."START_DATE_TIME"))<= (SELECT
TRUNC(INTERNAL_FUNCTION("SCHED_HORIZON_END_DATE")) FROM "RLM"."RLM
"RLM_SCHEDULE_HEADERS_ALL" WHERE "HEADER_ID"=1197995 AND
NVL("ORG_ID",NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1
',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99)))=NVL(TO_NUMBE
INFO'),1,1),' ',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99))
19 - filter(NVL("ORG_ID",NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1
',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99)))=NVL(TO_NUMBE
INFO'),1,1),' ',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99))
20 - access("HEADER_ID"=1197995)
21 - filter(NVL("ORG_ID",NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1
',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99)))=NVL(TO_NUMBE
INFO'),1,1),' ',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99))
22 - access("HEADER_ID"=1197995)
24 - access("LOOKUP_TYPE"='RLM_DETAIL_SUBTYPE_CODE' AND "VIEW_APPLICATION_ID"=
"LOOKUP_CODE"=NVL("A"."ITEM_DETAIL_SUBTYPE","B_IN"."ITEM_DETAIL_SU
PLAN_TABLE_OUTPUT
"LANGUAGE"=USERENV('LANG'))
filter("LANGUAGE"=USERENV('LANG') AND "SECURITY_GROUP_ID"="FND_GLOBAL"."L
P"("LV"."LOOKUP_TYPE","LV"."VIEW_APPLICATION_ID"))
25 - access("LOOKUP_TYPE"='RLM_DETAIL_TYPE_CODE' AND "VIEW_APPLICATION_ID"=0 A
"LOOKUP_CODE"=NVL("A"."ITEM_DETAIL_TYPE",'0') AND "LANGUAGE"=USERE
filter("LANGUAGE"=USERENV('LANG') AND "SECURITY_GROUP_ID"="FND_GLOBAL"."L
P"("LV"."LOOKUP_TYPE","LV"."VIEW_APPLICATION_ID"))
27 - access("HEADER_ID"= (SELECT MAX("RSHA"."HEADER_ID") FROM "APPS"."RLM_SCHE
"RSLA","APPS"."RLM_SCHEDULE_HEADERS_ALL" "RSHA","APPS"."RLM_SCHEDU
"RLM_SCHEDULE_HEADERS_ALL" WHERE "RSHA"."HEADER_ID"="HEADER_ID" AN
TO_NUMBER("ATTRIBUTE1")=109007290 AND "RSHA"."ECE_TP_LOCATION_CODE
"RSHA"."CUSTOMER_ID"=64742 AND "RSHA"."SCHEDULE_TYPE"='PLANNING_RE
NVL("RSHA"."HEADER_REF_VALUE_1",'1') IS NOT NULL AND "RSLA"."INVEN
"RSHA"."HEADER_ID"="RSLA"."HEADER_ID" AND "RSLA"."SHIP_FROM_ORG_ID
("RSLA"."CUST_PO_NUMBER"=:B2 AND EXISTS (SELECT 0 FROM "AR"."HZ_C
"CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APPLSYS"."FND_LOOKUP_VALUES
"B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=USERENV(
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742) OR NOT EXISTS (SELECT 0 FROM
"CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APPLSYS"."FND_LOOKUP_VALUES
"B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=USERENV(
PLAN_TABLE_OUTPUT
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742)) AND "RSLA"."ORG_ID"="RSHA"."
32 - filter("RSHA"."CUSTOMER_ID"=64742 AND "RSHA"."SCHEDULE_TYPE"='PLANNING_RE
NVL("RSHA"."HEADER_REF_VALUE_1",'1') IS NOT NULL)
33 - access("RSHA"."ECE_TP_LOCATION_CODE_EXT"='AG-60989')
34 - filter(TO_NUMBER("ATTRIBUTE1")=109007290)
35 - access("RSHA"."HEADER_ID"="HEADER_ID")
36 - access("RSHA"."HEADER_ID"="RSLA"."HEADER_ID" AND "RSLA"."INVENTORY_ITEM_I
37 - filter("RSLA"."SHIP_FROM_ORG_ID"=2904 AND ("RSLA"."CUST_PO_NUMBER"=:B1 AN
0 FROM "AR"."HZ_CUST_ACCOUNTS" "CUST_ACCT","AR"."HZ_PARTIES" "PART
"B" WHERE "B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742) OR NOT EXISTS (SELECT 0 FROM
"CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APPLSYS"."FND_LOOKUP_VALUES
"B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=USERENV(
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742)) AND "RSLA"."ORG_ID"="RSHA"."
41 - access("CUST_ACCT"."CUST_ACCOUNT_ID"=64742)
43 - access("CUST_ACCT"."PARTY_ID"="PARTY"."PARTY_ID")
44 - access("B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."MEANING"=SUBSTRB("
AND "B"."LANGUAGE"=USERENV('LANG'))
PLAN_TABLE_OUTPUT
filter("B"."LANGUAGE"=USERENV('LANG') AND "B"."MEANING"=SUBSTRB("PARTY_NA
48 - access("CUST_ACCT"."CUST_ACCOUNT_ID"=64742)
50 - access("CUST_ACCT"."PARTY_ID"="PARTY"."PARTY_ID")
51 - access("B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."MEANING"=SUBSTRB("
AND "B"."LANGUAGE"=USERENV('LANG'))
filter("B"."LANGUAGE"=USERENV('LANG') AND "B"."MEANING"=SUBSTRB("PARTY_NA
58 - access("LOOKUP_TYPE"='RLM_DETAIL_TYPE_CODE' AND "VIEW_APPLICATION_ID"=0 A
"LANGUAGE"=USERENV('LANG'))
filter("SECURITY_GROUP_ID"="FND_GLOBAL"."LOOKUP_SECURITY_GROUP"("LV"."LOO
W_APPLICATION_ID"))
59 - filter("A"."SHIP_FROM_ORG_ID"=2904)
60 - access("A"."ITEM_DETAIL_TYPE"="LOOKUP_CODE" AND "A"."HEADER_ID"=1197995)
filter(TO_NUMBER("A"."ITEM_DETAIL_TYPE")<3)
61 - filter(NVL("B"."INTRMD_SHIP_TO_ID"(+),NVL("A"."INTRMD_SHIP_TO_ID",0))=NVL
O_ID",0) AND "B"."ITEM_DETAIL_SUBTYPE"(+)="A"."ITEM_DETAIL_SUBTYPE
"B"."UOM_CODE"(+)="A"."UOM_CODE" AND NVL("B"."CUST_PO_NUMBER"(+),N
("A"."CUST_PO_NUMBER",'0') AND TRUNC(INTERNAL_FUNCTION("B"."START_
NCTION("A"."START_DATE_TIME")))
62 - filter("HEADER_ID"= (SELECT "HEADER_ID" FROM "APPS"."RLM_SCHEDULE_HEADERS
"RLM_SCHEDULE_HEADERS_ALL" WHERE "HEADER_ID"= (SELECT MAX("RSHA"."
"APPS"."RLM_SCHEDULE_LINES_ALL" "RSLA","APPS"."RLM_SCHEDULE_HEADER
PLAN_TABLE_OUTPUT
"RSHA","APPS"."RLM_SCHEDULE_HEADERS_ALL" "RLM_SCHEDULE_HEADERS_ALL
"RSHA"."HEADER_ID"="HEADER_ID" AND TO_NUMBER("ATTRIBUTE1")=1090072
"RSHA"."ECE_TP_LOCATION_CODE_EXT"='AG-60989' AND "RSHA"."CUSTOMER_
"RSHA"."SCHEDULE_TYPE"='PLANNING_RELEASE' AND NVL("RSHA"."HEADER_R
"RSLA"."INVENTORY_ITEM_ID"=:B1 AND "RSHA"."HEADER_ID"="RSLA"."HEAD
"RSLA"."SHIP_FROM_ORG_ID"=2904 AND ("RSLA"."CUST_PO_NUMBER"=:B2 AN
"AR"."HZ_CUST_ACCOUNTS" "CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APP
WHERE "B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=US
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742) OR NOT EXISTS (SELECT 0 FROM
"CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APPLSYS"."FND_LOOKUP_VALUES
"B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=USERENV(
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742)) AND "RSLA"."ORG_ID"="RSHA"."
63 - filter("A"."SHIP_FROM_ORG_ID"=2904)
64 - filter("B_IN"."CUSTOMER_ITEM_ID"="A"."CUSTOMER_ITEM_ID" AND
"B_IN"."SHIP_FROM_ORG_ID"="A"."SHIP_FROM_ORG_ID" AND TO_NUMBER("B_
TRUNC(INTERNAL_FUNCTION("B_IN"."START_DATE_TIME"))>= (SELECT
TRUNC(INTERNAL_FUNCTION("SCHED_HORIZON_START_DATE")) FROM "RLM"."R
"RLM_SCHEDULE_HEADERS_ALL" WHERE "HEADER_ID"=1197995 AND
NVL("ORG_ID",NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1
PLAN_TABLE_OUTPUT
',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99)))=NVL(TO_NUMBE
INFO'),1,1),' ',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99))
65 - access("B_IN"."INVENTORY_ITEM_ID"="A"."INVENTORY_ITEM_ID" AND
"B_IN"."SHIP_TO_ORG_ID"="A"."SHIP_TO_ORG_ID")
66 - filter(NVL("ORG_ID",NVL(TO_NUMBER(DECODE(SUBSTRB(USERENV('CLIENT_INFO'),1
',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99)))=NVL(TO_NUMBE
INFO'),1,1),' ',NULL,SUBSTRB(USERENV('CLIENT_INFO'),1,10))),(-99))
67 - access("HEADER_ID"=1197995)
68 - access("HEADER_ID"= (SELECT MAX("RSHA"."HEADER_ID") FROM "APPS"."RLM_SCHE
"RSLA","APPS"."RLM_SCHEDULE_HEADERS_ALL" "RSHA","APPS"."RLM_SCHEDU
"RLM_SCHEDULE_HEADERS_ALL" WHERE "RSHA"."HEADER_ID"="HEADER_ID" AN
TO_NUMBER("ATTRIBUTE1")=109007290 AND "RSHA"."ECE_TP_LOCATION_CODE
"RSHA"."CUSTOMER_ID"=64742 AND "RSHA"."SCHEDULE_TYPE"='PLANNING_RE
NVL("RSHA"."HEADER_REF_VALUE_1",'1') IS NOT NULL AND "RSLA"."INVEN
"RSHA"."HEADER_ID"="RSLA"."HEADER_ID" AND "RSLA"."SHIP_FROM_ORG_ID
("RSLA"."CUST_PO_NUMBER"=:B2 AND EXISTS (SELECT 0 FROM "AR"."HZ_C
"CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APPLSYS"."FND_LOOKUP_VALUES
"B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=USERENV(
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742) OR NOT EXISTS (SELECT 0 FROM
"CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APPLSYS"."FND_LOOKUP_VALUES
PLAN_TABLE_OUTPUT
"B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=USERENV(
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742)) AND "RSLA"."ORG_ID"="RSHA"."
73 - filter("RSHA"."CUSTOMER_ID"=64742 AND "RSHA"."SCHEDULE_TYPE"='PLANNING_RE
NVL("RSHA"."HEADER_REF_VALUE_1",'1') IS NOT NULL)
74 - access("RSHA"."ECE_TP_LOCATION_CODE_EXT"='AG-60989')
75 - filter(TO_NUMBER("ATTRIBUTE1")=109007290)
76 - access("RSHA"."HEADER_ID"="HEADER_ID")
77 - access("RSHA"."HEADER_ID"="RSLA"."HEADER_ID" AND "RSLA"."INVENTORY_ITEM_I
78 - filter("RSLA"."SHIP_FROM_ORG_ID"=2904 AND ("RSLA"."CUST_PO_NUMBER"=:B1 AN
0 FROM "AR"."HZ_CUST_ACCOUNTS" "CUST_ACCT","AR"."HZ_PARTIES" "PART
"B" WHERE "B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742) OR NOT EXISTS (SELECT 0 FROM
"CUST_ACCT","AR"."HZ_PARTIES" "PARTY","APPLSYS"."FND_LOOKUP_VALUES
"B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."LANGUAGE"=USERENV(
"B"."MEANING"=SUBSTRB("PARTY_NAME",1,50) AND "CUST_ACCT"."PARTY_ID
"CUST_ACCT"."CUST_ACCOUNT_ID"=64742)) AND "RSLA"."ORG_ID"="RSHA"."
82 - access("CUST_ACCT"."CUST_ACCOUNT_ID"=64742)
84 - access("CUST_ACCT"."PARTY_ID"="PARTY"."PARTY_ID")
85 - access("B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."MEANING"=SUBSTRB("
PLAN_TABLE_OUTPUT
AND "B"."LANGUAGE"=USERENV('LANG'))
filter("B"."LANGUAGE"=USERENV('LANG') AND "B"."MEANING"=SUBSTRB("PARTY_NA
89 - access("CUST_ACCT"."CUST_ACCOUNT_ID"=64742)
91 - access("CUST_ACCT"."PARTY_ID"="PARTY"."PARTY_ID")
92 - access("B"."LOOKUP_TYPE"='ETN_RLM_CHECK_CUST' AND "B"."MEANING"=SUBSTRB("
AND "B"."LANGUAGE"=USERENV('LANG'))
filter("B"."LANGUAGE"=USERENV('LANG') AND "B"."MEANING"=SUBSTRB("PARTY_NA
94 - access("LOOKUP_TYPE"='RLM_DETAIL_SUBTYPE_CODE' AND "VIEW_APPLICATION_ID"=
"LOOKUP_CODE"=NVL("B"."ITEM_DETAIL_SUBTYPE","A"."ITEM_DETAIL_SUBTY
"LANGUAGE"=USERENV('LANG'))
filter("LANGUAGE"=USERENV('LANG') AND "SECURITY_GROUP_ID"="FND_GLOBAL"."L
P"("LV"."LOOKUP_TYPE","LV"."VIEW_APPLICATION_ID"))
95 - access("LOOKUP_TYPE"='RLM_DETAIL_TYPE_CODE' AND "VIEW_APPLICATION_ID"=0 A
"LOOKUP_CODE"=NVL("B"."ITEM_DETAIL_TYPE",'0') AND "LANGUAGE"=USERE
filter("LANGUAGE"=USERENV('LANG') AND "SECURITY_GROUP_ID"="FND_GLOBAL"."L
P"("LV"."LOOKUP_TYPE","LV"."VIEW_APPLICATION_ID"))
Note
- 'PLAN_TABLE' is old version
313 rows selectedPlease suggest me how can I work on the query part to improve the performance.
Thanks
Vishalaksha
Similar Messages
-
Need help for performance tunning
Hello,
I have 16K records return by query, it takes long time to proceed for 7K it takes 7.5 sec.
Note: I used all seeded tables only.
If possible please help me to tune it.
SELECT msi.inventory_item_id,msi.segment1,msi.rimary_uom_code , msi.primary_unit_of_measure
FROM mtl_system_items_b msi, qp_list_lines qpll,qp_pricing_attributes qppr,
mtl_category_sets_tl mcs,mtl_category_sets_b mcsb,
mtl_categories_b mc, mtl_item_categories mcb
WHERE msi.enabled_flag = 'Y'
AND qpll.list_line_id = qppr.list_line_id
AND qppr.product_attr_value = TO_CHAR (msi.inventory_item_id(+))
AND qppr.product_uom_code = msi.primary_uom_code
AND mc.category_id = mcb.category_id
AND msi.inventory_item_id = mcb.inventory_item_id
AND msi.organization_id = mcb.organization_id
AND TRUNC (SYSDATE) BETWEEN NVL (qpll.start_date_active,TRUNC (SYSDATE)) AND NVL (qpll.end_date_active,TRUNC (SYSDATE))
AND mcs.category_set_name = 'LSS SALES CATEGORY'
AND mcs.language = 'US'
AND mcs.category_set_id = mcsb.category_set_id
AND mcsb.structure_id = mc.structure_id
AND msi.organization_id = :p_organization_id
AND qpll.list_header_id = :p_price_list_id
AND mcb.category_id = :p_category_id;
Thanks and regards
Akil.Thanks Helios ,
here is answers
Databse version
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit
PL/SQL Release 11.1.0.7.0
explain plan
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
|
0 | SELECT STATEMENT
| |
1 | 149 | 9439
(1)|
|
1 | NESTED LOOPS | | 1 |
149 | 9439 (1)|
|*
2 | HASH JOIN OUTER | | 1 |
135 | 9437 (1)|
|*
3 | HASH JOIN | | 1 |
71 | 9432 (1)|
|
4 | NESTED LOOPS | | 2 |
76 | 53 (0)|
|*
5 | TABLE ACCESS BY INDEX
ROWID| QP_LIST_LINES | 2 |
44 | 49 (0)|
|*
6 | INDEX SKIP SCAN | QP_LIST_LINES_N2 |
702 | | 20
(0)|
|*
7 | INDEX RANGE SCAN | QP_PRICING_ATTRIBUTES_N3 | 1 |
16 | 2 (0)|
|*
8 | TABLE ACCESS BY INDEX
ROWID | MTL_SYSTEM_ITEMS_B | 46254
| 1490K|
9378 (1)|
|*
9 | INDEX RANGE SCAN | MTL_SYSTEM_ITEMS_B_N9 | 46254 | |
174 (1)|
|
10 | TABLE ACCESS FULL | XX_WEB_ITEM_IMAGE_TBL |
277 | 17728 | 5 (0)|
|* 11 | INDEX RANGE SCAN | MTL_ITEM_CATEGORIES_U1 |
1 | 14 | 2
(0)|
Predicate Information (identified
by operation id):
2 -
access("XWIIT"."IMAGE_CODE"(+)="MSI"."SEGMENT1")
3 -
access("QPPR"."PRODUCT_ATTR_VALUE"=TO_CHAR("MSI"."INVENTORY_ITEM_ID")
AND
"QPPR"."PRODUCT_UOM_CODE"="MSI"."PRIMARY_UOM_CODE")
5 - filter(NVL("QPLL"."START_DATE_ACTIVE",TRUNC(SYSDATE@!))<=TRUNC(SYSDATE@!)
AND
NVL("QPLL"."END_DATE_ACTIVE",TRUNC(SYSDATE@!))>=TRUNC(SYSDATE@!))
6 -
access("QPLL"."LIST_HEADER_ID"=TO_NUMBER(:P_PRICE_LIST_ID))
filter("QPLL"."LIST_HEADER_ID"=TO_NUMBER(:P_PRICE_LIST_ID))
7 -
access("QPLL"."LIST_LINE_ID"="QPPR"."LIST_LINE_ID")
filter("QPPR"."PRODUCT_UOM_CODE" IS NOT NULL)
8 - filter("MSI"."ENABLED_FLAG"='Y')
9 - access("MSI"."ORGANIZATION_ID"=TO_NUMBER(:P_ORGANIZATION_ID))
11 -
access("MCB"."ORGANIZATION_ID"=TO_NUMBER(:P_ORGANIZATION_ID)
AND
"MSI"."INVENTORY_ITEM_ID"="MCB"."INVENTORY_ITEM_ID"
AND
"MCB"."CATEGORY_ID"=TO_NUMBER(:P_CATEGORY_ID))
filter("MCB"."CATEGORY_ID"=TO_NUMBER(:P_CATEGORY_ID))
Note
- 'PLAN_TABLE' is old version
TKprof Plan
TKPROF: Release 11.1.0.7.0 - Production on Fri Nov 15 06:12:26 2013
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Trace file: LSSD_ora_19760.trc
Sort options: default
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
SELECT msi.inventory_item_id,
msi.segment1,
primary_uom_code,
primary_unit_of_measure,
xwiit.image_url
FROM mtl_system_items_b msi,
qp_list_lines qpll,
qp_pricing_attributes qppr,
mtl_item_categories mcb,
xx_web_item_image_tbl xwiit
WHERE msi.enabled_flag = 'Y'
AND qpll.list_line_id = qppr.list_line_id
AND qppr.product_attr_value = TO_CHAR (msi.inventory_item_id)
AND qppr.product_uom_code = msi.primary_uom_code
AND msi.inventory_item_id = mcb.inventory_item_id
AND msi.organization_id = mcb.organization_id
AND TRUNC (SYSDATE) BETWEEN NVL (qpll.start_date_active,
TRUNC (SYSDATE))
AND NVL (qpll.end_date_active,
TRUNC (SYSDATE))
AND xwiit.image_code(+) = msi.segment1
AND msi.organization_id = :p_organization_id
AND qpll.list_header_id = :p_price_list_id
AND mcb.category_id = :p_category_id
call count cpu elapsed disk query current rows
Parse 2 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 0
Fetch 2 3.84 3.85 0 432560 0 1002
total 6 3.84 3.85 0 432560 0 1002
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 173
Rows Row Source Operation
501 NESTED LOOPS (cr=216280 pr=0 pw=0 time=115 us cost=9439 size=149 card=1)
2616 HASH JOIN OUTER (cr=211012 pr=0 pw=0 time=39 us cost=9437 size=135 card=1)
78568 HASH JOIN (cr=210997 pr=0 pw=0 time=3786 us cost=9432 size=71 card=1)
78571 NESTED LOOPS (cr=29229 pr=0 pw=0 time=35533 us cost=53 size=76 card=2)
78571 TABLE ACCESS BY INDEX ROWID QP_LIST_LINES (cr=9943 pr=0 pw=0 time=27533 us cost=49 size=44 card=2)
226733 INDEX SKIP SCAN QP_LIST_LINES_N2 (cr=865 pr=0 pw=0 time=4122 us cost=20 size=0 card=702)(object id 99730)
78571 INDEX RANGE SCAN QP_PRICING_ATTRIBUTES_N3 (cr=19286 pr=0 pw=0 time=0 us cost=2 size=16 card=1)(object id 99733)
128857 TABLE ACCESS BY INDEX ROWID MTL_SYSTEM_ITEMS_B (cr=181768 pr=0 pw=0 time=9580 us cost=9378 size=1526382 card=46254)
128857 INDEX RANGE SCAN MTL_SYSTEM_ITEMS_B_N9 (cr=450 pr=0 pw=0 time=1657 us cost=174 size=0 card=46254)(object id 199728)
277 TABLE ACCESS FULL XX_WEB_ITEM_IMAGE_TBL (cr=15 pr=0 pw=0 time=22 us cost=5 size=17728 card=277)
501 INDEX RANGE SCAN MTL_ITEM_CATEGORIES_U1 (cr=5268 pr=0 pw=0 time=0 us cost=2 size=14 card=1)(object id 99557)
Note: I modified query and it gives good result, now it takes 3 to 4 sec for 16000 records.
If possible can you plz explain what we have to take care while doing performance tunning
I am a fresher so don't have that much idea.
and also Thanks Hussein for your replay -
Hi Gurus,
I m new to the group and SAP BW as well,so i need ur valuable inputs for a Performance related Project.
I m going to start a new project in a wks time so and i m working as a Performance Tuning Consultant on that(Load & Query Performance),but i don't have any idea about this,so i need ur valuable advice on that,plz.
Can anyone plz suggest me the possible ways of suggestions so that i can tell the client as a gud consultant to start with but these days i m going though BW Performance & Authorization(BW360) which is really helpful for me but apart from that i need ur valuable inputs as well.
Thanks in Advance.
regards
Amithi Amit,
check this.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/afbad390-0201-0010-daa4-9ef0168d41b6
also
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/media/uuid/10b589ad-0701-0010-0299-e5c282b7aaad
regards. -
Need help in performance tunning
Hi , i have one update statement , where it is keep on running for hours and the volume of the data is 2.2 million
version:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
below is the code :
DECLARE
Cursor C11
Is
Select Account_Num,Outlet_Num,Product_Number,Ln_Of_Biz,Generateguid('DELIVERED_PRODUCT') As Dp_Guid From (
Select Account_Num,Outlet_Num,Product_Number,Ln_Of_Biz
From transformation_flat
Group By Account_Num, Outlet_Num,Ln_Of_Biz,Product_Number
Having Count(*)> 1);
Type Actno Is Table Of Varchar2(13) Index By Binary_Integer;
Type Outlet Is Table Of NUMBER Index By Binary_Integer;
Type Pno Is Table Of VARCHAR2(255) INDEX BY BINARY_INTEGER;
Type Tn Is Table Of VARCHAR2(10) Index By Binary_Integer;
Type Vdpguid Is Table Of VARCHAR2(20) Index By Binary_Integer;
Type Vcnt Is Table Of Number Index By Binary_Integer;
Type Lob1 Is Table Of Varchar2(255) Index By Binary_Integer;
Type Offer_No Is Table Of Varchar2(255) Index By Binary_Integer;
V_Actno Actno;
V_Outlet Outlet;
V_Pno Pno;
V_Tn Tn;
V_DPGUID VDPGUID;
Vguid Varchar2(20);
V_Cnt Vcnt;
V_Lob Lob1;
V_Offer_No Offer_No;
BEGIN
Open c11;
Loop
Fetch C11 Bulk Collect Into V_Actno,V_Outlet,V_Pno,V_Lob,V_Dpguid;
Exit When C11%Notfound;
End Loop;
close c11;
Forall I In 1..V_Actno.count
Update transformation_flat Set Product_Guid=V_Dpguid(I) Where
Account_Num=V_Actno(I) And
Outlet_Num=V_Outlet(I) And
Product_Number=V_Pno(I) And
ln_of_biz=v_lob(I);
Commit;
END;
for above i do have index on that table on (account_num,outlet_num,product_number,ln_of_biz).
when i checked the memory contents for this sqlid in v$sql , below are the values :
Disk_Read:21640650
Buffer_Gets:22466856
Concurrency_Wait_Time:16923
Cluster_Wait_Time:36313694
user_io_wait_time:3594365433
I need some inputs in which area i can tune the above code..
Thanks835589 wrote:
hi i am also face same performance issue pls reply me ASApDon't use the word ASAP, it is rude and a violation of forum terms and conditions.
http://www.oracle.com/html/terms.html
>
4. Use of Community Services
Community Services are provided as a convenience to users and Oracle is not obligated to provide any technical support for, or participate in, Community Services. While Community Services may include information regarding Oracle products and services, including information from Oracle employees, they are not an official customer support channel for Oracle.
You may use Community Services subject to the following: (a) Community Services may be used solely for your personal, informational, noncommercial purposes; (b) Content provided on or through Community Services may not be redistributed; and (c) personal data about other users may not be stored or collected except where expressly authorized by Oracle
>
These people are for ASAP requests.
http://www.google.com/search?q=oracle+consultant
where i need to tune the queery.
pls i am eagarly waiting for that
Read and understand the links posted above
RPuttagunta wrote:
HOW TO: Post a SQL statement tuning request - template posting
When your query takes too long ... -
Help with Performance tunning PL/SQL
Hi All,
I have a PL/SQL procedure, it works fine. No errors, and no bugs. However its taking forever to finish. I am using the concatenation operator (||), and I know its expensive. How can I improve performance to the procedure ?
Here is the code
create or replace
PROCEDURE POST_ADDRESS_CLEANSE AS
CURSOR C1 IS
SELECT Z.ROW_ID,
Z.NAME
FROM STGDATA.ACCOUNT_SOURCE Z;
CURSOR C2 IS
SELECT DISTINCT CLEANSED_NAME || CLEANSED_STREET_ADDRESS ||
CLEANSED_STREET_ADDRESS_2 || CLEANSED_CITY || CLEANSED_STATE ||
CLEANSED_POSTAL_CODE AS FULLRECORD
FROM STGDATA.ACCOUNT_SOURCE_CLEANSED;
V_ROWID Number := 1;
V_FLAG VARCHAR2(30);
TEMP_ROW_ID VARCHAR2(10) := NULL;
BEGIN
-- This loop will update CLEANSED_NAME column in ACCOUNT_SOURCE_CLEANSED table.
FOR X IN C1 LOOP
TEMP_ROW_ID := TO_CHAR(X.ROW_ID);
UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED A
SET A.CLEANSED_NAME = X.NAME
WHERE A.ROW_ID = TEMP_ROW_ID;
COMMIT;
END LOOP;
-- This loop will update columns EM_PRIMARY_FLAG, EM_GROUP_ID in ACCOUNT_SOURCE_CLEANSED table
FOR Y IN C2 LOOP
UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED
SET EM_GROUP_ID = V_ROWID
WHERE CLEANSED_NAME || CLEANSED_STREET_ADDRESS || CLEANSED_STREET_ADDRESS_2 ||
CLEANSED_CITY || CLEANSED_STATE || CLEANSED_POSTAL_CODE = Y.FULLRECORD;
UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED
SET EM_PRIMARY_FLAG = 'Y'
WHERE CLEANSED_NAME || CLEANSED_STREET_ADDRESS || CLEANSED_STREET_ADDRESS_2 ||
CLEANSED_CITY || CLEANSED_STATE || CLEANSED_POSTAL_CODE = Y.FULLRECORD
AND ROWNUM = 1;
V_ROWID := V_ROWID + 1;
COMMIT;
END LOOP;
UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED
SET EM_PRIMARY_FLAG = 'N'
WHERE EM_PRIMARY_FLAG IS NULL;
COMMIT;
--dbms_output.put_line('V_ROW:'||V_ROWID);
--dbms_output.put_line('CLEANSED_NAME:'||Y.FULLRECORD);
END POST_ADDRESS_CLEANSE;
Thanks in advance.
Message was edited by: Rooney -- added code using syntax highlightI was able to modify my code a bit, however I don't see a way of not using loops.
In the loop, I am updating 2 columns. EM_PRIMARY_FLAG, and EM_GROUP_ID. The data I am working with has duplicate records, and that is why I am using a distinct in the cursor. The requirements are is to make one record a primary record, and the rest are reference records. What makes my record primary is updating column EM_PRIMARY_FLAG with a 'Y', and updating EM_GROUP_ID with a number combines all duplicate records into a group.
In the procedure, I am getting the distinct records, looping through each one, and then doing 2 updates:
1 - Update EM_PRIMARY_FLAG to 'Y' where rownum = 1, this will set one record to be primary
2 - Update EM_GROUP_ID to a number (V_ROWID := V_ROWID + 1) where V_ROWID starts from 1, to group all records into a set.
Here is my latest code after modifying it:
create or replace
PROCEDURE POST_ADDRESS_CLEANSE AS
CURSOR C1 IS
SELECT DISTINCT NVL(CLEANSED_NAME, '') AS NAME_CLEANSED,
NVL(CLEANSED_STREET_ADDRESS, '') AS ADDRESS_CLEANSED,
NVL(CLEANSED_STREET_ADDRESS_2, '') AS ADDRESS2_CLEANSED,
NVL(CLEANSED_CITY, '') AS CITY_CLEANSED,
NVL(CLEANSED_STATE, '') AS STATE_CLEANSED,
NVL(CLEANSED_POSTAL_CODE, '') AS POSTAL_CODE_CLEANSED
FROM STGDATA.ACCOUNT_SOURCE_CLEANSED;
V_ROWID Number := 1;
V_FLAG VARCHAR2(30);
TEMP_ROW_ID VARCHAR2(10) := NULL;
BEGIN
UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED A
SET A.CLEANSED_NAME = (SELECT Z.NAME
FROM STGDATA.ACCOUNT_SOURCE Z
WHERE Z.ROW_ID = (SELECT TO_NUMBER(B.ROW_ID)
FROM STGDATA.ACCOUNT_SOURCE_CLEANSED B
WHERE B.ROW_ID = A.ROW_ID));
COMMIT;
-- This loop will update columns EM_PRIMARY_FLAG, EM_GROUP_ID in ACCOUNT_SOURCE_CLEANSED table
FOR Y IN C1 LOOP
UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED
SET EM_GROUP_ID = V_ROWID
WHERE CLEANSED_NAME = Y.NAME_CLEANSED
AND CLEANSED_STREET_ADDRESS = Y.ADDRESS_CLEANSED
AND CLEANSED_STREET_ADDRESS_2 = Y.ADDRESS2_CLEANSED
AND CLEANSED_CITY = Y.CITY_CLEANSED
AND CLEANSED_STATE = Y.STATE_CLEANSED
AND CLEANSED_POSTAL_CODE = Y.POSTAL_CODE_CLEANSED;
UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED
SET EM_PRIMARY_FLAG = 'Y'
WHERE CLEANSED_NAME = Y.NAME_CLEANSED
AND CLEANSED_STREET_ADDRESS = Y.ADDRESS_CLEANSED
AND CLEANSED_STREET_ADDRESS_2 = Y.ADDRESS2_CLEANSED
AND CLEANSED_CITY = Y.CITY_CLEANSED
AND CLEANSED_STATE = Y.STATE_CLEANSED
AND CLEANSED_POSTAL_CODE = Y.POSTAL_CODE_CLEANSED
AND ROWNUM = 1;
V_ROWID := V_ROWID + 1;
END LOOP;
COMMIT;
UPDATE STGDATA.ACCOUNT_SOURCE_CLEANSED
SET EM_PRIMARY_FLAG = 'N'
WHERE EM_PRIMARY_FLAG IS NULL;
COMMIT;
END POST_ADDRESS_CLEANSE;
Thanks
Message was edited by: Rooney - Just added the code in SQL block using syntax highlight. -
Hi friends,
I am himansu, i am facing a problem during performance tunning of query in oracle , please guide me how to tune a query which will give better performance.907977 wrote:
Hi friends,
I am himansu, i am facing a problem during performance tunning of query in oracle , please guide me how to tune a query which will give better performance.Welcome to OTN
Please post your thread at SQL, PL/SQL. PL/SQL
and provide your sql query.
Hope this will help you. -
Unknown steps in performance tunning
Hi,
I am in middle of performance tunning in BI 7.0, as i am going to do the following steps-i am unclear in some steps;
expert advice is needed. post ur ans as soon as possible.
When loading transaction data, following this procedure:
known - Load all master data.
known - Delete the indices of the InfoCube and its aggregates.
Unknown - Turn on number range buffering.
Unknown - Set an appropriate data packet size.
known - Load the transaction data.
known - Re-create the indices.
Unknown - Turn off number range buffering.
known - Refresh the statistics.
regards,
SumanHi Suman,
check these on number range buffering
http://help.sap.com/saphelp_nw04/helpdata/en/7b/6eb2aa7aed44ea92ebb969e03081fb/frameset.htm
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c0a6e3ff-f000-2d10-b59d-8ef35e248f83?quicklink=index&overridelayout=true -
Pls help in performance tuning SQL
Hi All,
Can someone please help me to tune this quesry. Rt now it is takin 20 mins tro retuns 80,000 rows and its using dblink
SELECT COUNT(*) FROM
(SELECT /*+driving_site(main)*/CORP_ACTG_PRD_YEAR,
CORP_ACTG_PRD_NBR,
FCN_CODE,
LOCAL_CRNC_CODE,
GL_LOCAL_AMT,
CORP_ID,
PGRD_COST_CTR_ID,
MAJOR_CODE,
EXP_MINOR_CODE,
PGRD_EXP_CODE,
PGRD_EXP_DESC,
DIV_CODE,
MKT_CODE,
PROD_CODE,
PGRD_PROJECT_CODE,
PGRD_PROJ_SHORT_DESC
FROM --#GifDBLink# main,
[email protected] main,
select actg_prd_year, actg_prd_nbr from DM_GIF_ESSBASE_CTRL
where cur_prd_ind='Y' and src_id=84
union
select decode(actg_prd_nbr,1,actg_prd_year-1,actg_prd_year) actg_prd_year,
decode(actg_prd_nbr,1,12,actg_prd_nbr-1) actg_prd_nbr
from DM_GIF_ESSBASE_CTRL
where cur_prd_ind='Y' and src_id=84
union
select decode(actg_prd_nbr,12,actg_prd_year+1,actg_prd_year) actg_prd_year,
decode(actg_prd_nbr,12,1,actg_prd_nbr+1) actg_prd_nbr
from DM_GIF_ESSBASE_CTRL
where cur_prd_ind='Y' and src_id=84 ) minor
where main.CORP_ACTG_PRD_YEAR = minor.actg_prd_year
and main.CORP_ACTG_PRD_NBR = minor.actg_prd_nbr) T;user13365939 wrote:
anyone?Incorrect.
You are only one who can provide the information that was requested in this thread.
Please see the FAQ, read the instructions and provide the necessary information.
Re: 3. How to improve the performance of my query? / My query is running slow. -
Dear Experts,
I am urgently looking forward to some comprehensive documentation on Performance tunning elaborating on the issues like:-
1.)In what instances should we do performance tunning....
2.) why it is neccessary and
3.) what r the <b><u>various methods</b> <b>of performance tunnig....</u></b>
I shall be highly obliged, if anyone can point me to relevant links, or send me illustrative documentation on these issues in performance tunning at [email protected]
ur help shall be thankfully/duely acknowledged,
regards,
shalini.
Message was edited by: shalini guptaShalini ,
Performance tuning is at various levels :
1. Data Modeling
2. Data Loading
3. Report design
4. Reporting
It is a mix and match of the above and other factors you might need to consider could also be something like:
1. DB being used
2. Partitioning
3. System parameters
4. Authorization Design...
All this depends on the level of performance tuning you want to do:
https://websmp204.sap-ag.de/~sapidb/011000358700001890502003
This is a link to the support portal and I have sent the same across to you. Hope it is useful.
Arun -
How to improve my pls/sql performance tunning skills
Hi All , I would like to learn more about pl/sql performance tunning , where or how can i get more knowledge in this area ?
Is there any tutorials which can help me to understand the Explain plan, Dbms_Profiler, Dbms_Advisor more etc ........Thanks . BcjExplain plan
http://www.psoug.org/reference/explain_plan.html
DBMS_PROFILER (10g)
http://www.psoug.org/reference/dbms_profiler.html
DBMS_HPROF (11g)
http://www.psoug.org/reference/dbms_hprof.html
DBMS_ADVISOR
http://www.psoug.org/reference/dbms_advisor.html
DBMS_MONITOR
http://www.psoug.org/reference/dbms_monitor.html
DBMS_SUPPORT
http://www.psoug.org/reference/dbms_support.html
DBMS_TRACE
http://www.psoug.org/reference/dbms_trace.html
DBMS_SQLTUNE
http://www.psoug.org/reference/dbms_sqltune.html -
Dear Experts,
I am executing a query which is build on a Multiprovider. The execution time is approx. 12 mins, again if I enable a dimension to analyze it takes another 15 mins.
The technical details of the query are:
1) The multiprovider fetches data from three different Cubes.
2) It contains three diff characteristics out of which one is having a 10 level hierarchy and one is having a 2 level hierarchy. Both the hierarchies are externally maintained.
3) It contains KPIs which calculate the sales on diff time lines such as CM MTD, LM MTD, CY YTD, LY YTD with the help of a customer exit.
4) It converts the quatities in alt unit of measures through an exit.
Kindly suggest for performance tunning. How shall i achieve min query execution time??
-KushalHI Kushal,
effective query on MP can be found
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b03b7f4c-c270-2910-a8b8-91e0f6d77096
for nw2004s
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a9ab011a-0e01-0010-02a1-d496b94c9c0f
modeling on multiprovider
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/2f5aa43f-0c01-0010-a990-9641d3d4eef7
docs on performance available in
FAQ - The Future of SAP NetWeaver Business Intelligence in the Light of the NetWeaver BI&Business Objects Roadmap
https://service.sap.com/bi
-> performance
Also,
check the parallel processing setting, your query is non cumulative ...
629541 Multiprovider: Parallel Processing
911939 Optimization hint for logical MultiProvider partitioning
907881 MultiProvider with (too) many part providers
Performance of non-cumulative queries in MultiProviders
903559 MultiProvider optimization is only partially active
942554 Perf when working with BI inp help with multiprov on Oracle
607164 MultiProvider: Sequential processing is faster than parallel
913975 Performance problems for MultiProviders with many partprov.
hope this helps
Best Regards,
VVenkat.. -
Hi,
Can any one help me how to do performance tunning.I was given two scripts which contains more UNION clauses.Hi,
What version of Oracle are you on? If you have Oracle 22S (the S is for "Sentient"), there's one way:
SCOTT@ORA22S> set autotrace traceonly explain
SCOTT@ORA22S> ed
Wrote file afiedt.buf
1 select *
2 from test
3* where test_date > date '2001-01-01'
SCOTT@ORA22S> /
Execution Plan
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=40656 Card=1071132 Bytes=163883196)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TEST' (TABLE) (Cost=40656 Card=1071132 Bytes=163883196)
2 1 INDEX (FULL SCAN) OF 'TST_CUSTOM_03' (INDEX) (Cost=6785 Card=1071132)
SCOTT@ORA22S> alter session set sql_go_fast = true;
Session altered.
SCOTT@ORA22S> /
Execution Plan
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=9979 Card=1071132 Bytes=163883196)
1 0 TABLE ACCESS (FULL) OF 'TEST' (TABLE) (Cost=9979 Card=1071132 Bytes=163883196)Unfortunately Oracle 22S may not be available for a while. Until then you may have to listen to Billy ;-)
cheers,
Anthony -
SCM Live cache performance tunning
I got a ne project here I have to work on SCM live cache, performance tunning and ECC Integrating ith SCM.
If you have any documents can you please help me.
- Thanks7,
Try these
https://websmp103.sap-ag.de/~sapidb/011000358700000567062006E
https://websmp103.sap-ag.de/~sapidb/011000358700002213412003E
https://websmp103.sap-ag.de/~sapidb/011000358700000715082008E
https://websmp103.sap-ag.de/~sapidb/011000358700007382642002E
https://websmp103.sap-ag.de/~sapidb/011000358700008748092002E
Rgds,
DB49 -
Hi Guru's
Can you please help me query tunning.
Database Version : Oracle 11g - 11.2.0.3
select distinct corporation_name custer_name,
glog_util.remove_domain(SHIP_BUY.SERVPROV_GID ) SCAC,
glog_util.remove_domain(ship_buy.shipment_gid) buy_shipment_gid,
F_Get_SELL_ID_STRING(SHIP_BUY.SHIPMENT_GID) sell_shipment_gid,
ship_buy.domain_name,
F_GET_ORDER_RELEASE_GID('B',SHIP_BUY.SHIPMENT_GID,0) ORDER_RELEASE_GID,
f_get_refnum_string('SHIPMENT', ship_buy.shipment_gid, 'MBOL_NUMBER_CLEANSED')MBOL_NUMBER,
F_GET_POD_RECEIVED_DATE (ship_BUY.SHIPMENT_GID) POD_RECEIVED_DATE,
f_get_exp_accrue_amt(ship_buy.shipment_gid,'SHIPMENT') Total_accrual_amount
from shipment ship_buy,
invoice inv,
invoice_shipment si,
--voucher v,
corporation corp
where corp.domain_name=ship_buy.domain_name
and corp.is_domain_master='Y'
and 1=1
AND ship_buy.domain_name like 'UPS/CP/DFP/%'
and F_GET_POD_RECEIVED_DATE (ship_BUY.SHIPMENT_GID) <= to_char(to_date('31-JUL-2013', 'DD-MON-YYYY'), 'dd-mon-yyyy')
--and V.INVOICE_GID(+) = inv.invoice_gid
--and ship_buy.domain_name = 'UPS/CP/VZNB'
and si.shipment_gid(+) = SHIP_BUY.SHIPMENT_GID
AND SI.INVOICE_GID = INV.INVOICE_GID(+)
and SHIP_BUY.INSERT_DATE > '1-JAN-2007'
and SHIP_BUY.USER_DEFINED1_ICON_GID = 'ACCEPTED'
UNION
select distinct corporation_name custer_name,
glog_util.remove_domain(SHIP_BUY.SERVPROV_GID ) SCAC,
glog_util.remove_domain(ship_buy.shipment_gid) buy_shipment_gid,
F_GET_SELL_ID_STRING( SHIP_BUY.SHIPMENT_GID) sell_shipment_gid,
ship_buy.domain_name,
F_GET_ORDER_RELEASE_GID('B',SHIP_BUY.SHIPMENT_GID,0) ORDER_RELEASE_GID,
f_get_refnum_string('SHIPMENT', ship_buy.shipment_gid, 'MBOL_NUMBER_CLEANSED')MBOL_NUMBER,
F_GET_POD_RECEIVED_DATE (ship_BUY.SHIPMENT_GID) POD_RECEIVED_DATE,
f_get_exp_accrue_amt(inv.invoice_gid,'INVOICE') Total_accrual_amount
from shipment ship_buy,
invoice inv,
invoice_shipment si,
-- voucher v,
corporation corp
where corp.domain_name=ship_buy.domain_name
and corp.is_domain_master='Y'
and 1=1
AND ship_buy.domain_name like 'UPS/CP/DFP/%'
and F_GET_POD_RECEIVED_DATE (ship_BUY.SHIPMENT_GID) <= to_char(to_date('31-JUL-2013', 'DD-MON-YYYY'), 'dd-mon-yyyy')
--AND INV.DOMAIN_NAME = 'UPS/CP/VZNB'
--and V.INVOICE_GID(+) = inv.invoice_gid
and si.shipment_gid(+) = SHIP_BUY.SHIPMENT_GID
AND SI.INVOICE_GID = INV.INVOICE_GID(+)
and SHIP_BUY.INSERT_DATE > '1-JAN-2007'
and INV.USER_DEFINED1_ICON_GID = 'ACCEPTED'
GROUP BY corporation_name,SHIP_BUY.SHIPMENT_GID,SHIP_BUY.SERVPROV_GID,ship_buy.domain_name,inv.invoice_gid
ORDER BY CUSTER_NAME, BUY_SHIPMENT_GID;
And I generated the execution plan :
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 3 | 448 | 415 (2)| 00:00:05 |
| 1 | SORT UNIQUE | | 3 | 448 | 414 (87)| 00:00:05 |
| 2 | UNION-ALL | | | | | |
| 3 | NESTED LOOPS OUTER | | 3 | 384 | 57 (0)| 00:00:01 |
|* 4 | HASH JOIN | | 3 | 294 | 54 (0)| 00:00:01 |
|* 5 | TABLE ACCESS BY INDEX ROWID | SHIPMENT | 3 | 195 | 40 (0)| 00:00:01 |
|* 6 | INDEX SKIP SCAN | IND_SHIP_DOM_ICON | 54 | | 25 (0)| 00:00:01 |
|* 7 | TABLE ACCESS FULL | CORPORATION | 4 | 132 | 14 (0)| 00:00:01 |
|* 8 | INDEX RANGE SCAN | IND_INVOICESHIP_SHP_GID | 1 | 30 | 1 (0)| 00:00:01 |
| 9 | HASH GROUP BY | | 1 | 192 | 356 (1)| 00:00:05 |
|* 10 | HASH JOIN | | 1 | 192 | 354 (1)| 00:00:05 |
| 11 | NESTED LOOPS | | | | | |
| 12 | NESTED LOOPS | | 1 | 159 | 339 (0)| 00:00:05 |
| 13 | NESTED LOOPS | | 145 | 13920 | 194 (0)| 00:00:03 |
| 14 | TABLE ACCESS BY INDEX ROWID| INVOICE | 145 | 5220 | 49 (0)| 00:00:01 |
|* 15 | INDEX SKIP SCAN | IDX_INV_TYP_ICON_NAM | 145 | | 17 (0)| 00:00:01 |
|* 16 | INDEX RANGE SCAN | UK_INVOICE_SHIPMENT | 1 | 60 | 1 (0)| 00:00:01 |
|* 17 | INDEX UNIQUE SCAN | PK_SHIPMENT | 1 | | 1 (0)| 00:00:01 |
|* 18 | TABLE ACCESS BY INDEX ROWID | SHIPMENT | 1 | 63 | 1 (0)| 00:00:01 |
|* 19 | TABLE ACCESS FULL | CORPORATION | 4 | 132 | 14 (0)| 00:00:01 |
Predicate Information (identified by operation id):
4 - access("CORP"."DOMAIN_NAME"="SHIP_BUY"."DOMAIN_NAME")
5 - filter("F_GET_POD_RECEIVED_DATE"("SHIP_BUY"."SHIPMENT_GID")<=TO_DATE(' 2013-07-31 00:00:00',
'syyyy-mm-dd hh24:mi:ss') AND "SHIP_BUY"."INSERT_DATE">TO_DATE(' 2007-01-01 00:00:00', 'syyyy-mm-dd
hh24:mi:ss'))
6 - access("SHIP_BUY"."USER_DEFINED1_ICON_GID"='ACCEPTED' AND "SHIP_BUY"."DOMAIN_NAME" LIKE
'UPS/CP/DFP/%')
filter("SHIP_BUY"."DOMAIN_NAME" LIKE 'UPS/CP/DFP/%' AND
"SHIP_BUY"."USER_DEFINED1_ICON_GID"='ACCEPTED')
7 - filter("CORP"."IS_DOMAIN_MASTER"='Y' AND "CORP"."DOMAIN_NAME" LIKE 'UPS/CP/DFP/%')
8 - access("SI"."SHIPMENT_GID"(+)="SHIP_BUY"."SHIPMENT_GID")
10 - access("CORP"."DOMAIN_NAME"="SHIP_BUY"."DOMAIN_NAME")
15 - access("INV"."USER_DEFINED1_ICON_GID"='ACCEPTED')
filter("INV"."USER_DEFINED1_ICON_GID"='ACCEPTED')
16 - access("SI"."INVOICE_GID"="INV"."INVOICE_GID")
17 - access("SI"."SHIPMENT_GID"="SHIP_BUY"."SHIPMENT_GID")
filter("F_GET_POD_RECEIVED_DATE"("SHIP_BUY"."SHIPMENT_GID")<=TO_DATE(' 2013-07-31 00:00:00',
'syyyy-mm-dd hh24:mi:ss'))
18 - filter("SHIP_BUY"."DOMAIN_NAME" LIKE 'UPS/CP/DFP/%' AND "SHIP_BUY"."INSERT_DATE">TO_DATE('
2007-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
19 - filter("CORP"."IS_DOMAIN_MASTER"='Y' AND "CORP"."DOMAIN_NAME" LIKE 'UPS/CP/DFP/%')
Statistics
246247 recursive calls
2 db block gets
1660067 consistent gets
13839 physical reads
0 redo size
592054 bytes sent via SQL*Net to client
6024 bytes received via SQL*Net from client
502 SQL*Net roundtrips to/from client
15296 sorts (memory)
0 sorts (disk)
7513 rows processedHmmm...why does this look familiar?
F_GET_POD_RECEIVED_DATE (ship_BUY.SHIPMENT_GID) <= to_char(to_date('31-JUL-2013', 'DD-MON-YYYY'), 'dd-mon-yyyy')
SHIP_BUY.INSERT_DATE > '1-JAN-2007'
Like I said in your other thread about this, these two lines need to be fixed and your function needs to be fixed so the return statement doesn't do an implicit date conversion.
Can't you see what that first line is doing? You're taking a character string, turning it into a date, then back to a character string.
If nothing else, these lines should be...
F_GET_POD_RECEIVED_DATE (ship_BUY.SHIPMENT_GID) <= to_date('31-JUL-2013', 'DD-MON-YYYY')
SHIP_BUY.INSERT_DATE > to_date('01-JAN-2007','DD-MON-YYYY')
(assuming insert_date is a proper date format, fingers crossed) -
Help needed to tune the Query:Statistics added
Can someone DBA please help me to tune this query:
SELECT DISTINCT K.ATTRIBUTE_VALUE AGENCY_ID,B.PROFILE_NM ,NVL(G.OFFICE_DESC,'--') OFFICE_DESC,f.OFFICE_ID,B.PROFILE_ID,'%' ROLE,'%' LAYOUT,
CASE
WHEN 'flagB' = '%' THEN
NVL(J.ISS_GRP_DESC,'BILLING')
WHEN 'flagO' = '%' THEN
NVL(J.ISS_GRP_DESC,'ORDERING')
WHEN 'flag' = '%' THEN
NVL(J.ISS_GRP_DESC,'BILLING/ORDERING')
ELSE
NVL(J.ISS_GRP_DESC,' ')
END ISS_GRP_DESC,
DECODE(NVL(H.USERID,' ') ,' ','--','<a sbcuid_in=' || H.USERID || ' target=NEW >'||H.FIRSTNAME || ' ' || H.LASTNAME || '( ' || H.USERID || ' )</a>' ) USER_NAME
FROM
PROFILE_PORTAL B ,
TBL_BDA_AGENCY_RESP_REP C ,
TBL_BDA_AGENCY_OFFICE F,
TBL_BDA_OFFICE G,
USERS_PORTAL H,
TBL_BDA_USR_ISS_GRP I ,
TBL_BDA_ISS_GROUP J,
ATTRIBUTE_VALUES_PORTAL K,
PROFILE_TYPE_PORTAL L
WHERE
B.PROFILE_ID = F.AGENCY_ID (+)
AND B.PROFILE_ID = C.AGENCY_ID (+)
AND G.OFFICE_ID (+)= F.OFFICE_ID
AND H.USERID (+)= C.RESP_USR_ID
AND C.ISS_GRP_ID = I.ISS_GRP_ID (+)
AND I.ISS_GRP_ID = J.ISS_GRP_ID(+)
AND 'PROFILE.'||B.PROFILE_ID = K.ENTITY_ID(+)
AND K.ATTRIBUTE_VALUE IS NOT NULL
AND L.PROFILE_TYPE_ID = B.PROFILE_TYPE_ID
AND L.APPLICATION_CD='BDA'
AND NOT EXISTS (SELECT agency_id
FROM TBL_BDA_AGENCY_RESP_REP t
WHERE t.ISS_GRP_ID IN ('%')
AND t.AGENCY_ID = C.AGENCY_ID)
AND K.ATTRIBUTE_VALUE LIKE '%'
AND UPPER(B.PROFILE_NM) LIKE UPPER('%')
AND (to_char(NVL(B.PROFILE_ID,0)) LIKE '%' OR NVL(B.PROFILE_ID,0) IN ('a'))
AND NVL(G.OFFICE_ID,0) IN ('%')
AND (to_char(NVL(C.RESP_USR_ID,'0')) LIKE '%' OR NVL(C.RESP_USR_ID,'0') IN ('k'))
ORDER BY PROFILE_NM
The number of rows in these tables are as follows:
PROFILE_PORTAL -- 2392
TBL_BDA_AGENCY_RESP_REP 3508
TBL_BDA_AGENCY_OFFICE 2151
TBL_BDA_OFFICE 3
USERS_PORTAL 270500
TBL_BDA_USR_ISS_GRP 234
TBL_BDA_ISS_GROUP 2
ATTRIBUTE_VALUES_PORTAL 2790
PROFILE_TYPE_PORTAL 3
The Explain pal nhas given this o/p to me:
SQL> select * from table(dbms_xplan.display) dual;
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost |
| 0 | SELECT STATEMENT | | 807 | 102K| | 2533 |
| 1 | SORT UNIQUE | | 807 | 102K| 232K| 82 |
|* 2 | FILTER | | | | | |
|* 3 | HASH JOIN OUTER | | 807 | 102K| | 52 |
|* 4 | HASH JOIN OUTER | | 807 | 95226 | | 40 |
|* 5 | TABLE ACCESS BY INDEX ROWID | ATTRIBUTE_VALUES | 1 | 23 | | 2 |
| 6 | NESTED LOOPS | | 7 | 805 | | 37 |
| 7 | NESTED LOOPS OUTER | | 6 | 552 | | 25 |
|* 8 | FILTER | | | | | |
| 9 | NESTED LOOPS OUTER | | | | | |
|* 10 | FILTER | | | | | |
| 11 | NESTED LOOPS OUTER | | | | | |
| 12 | NESTED LOOPS OUTER | | 3 | 141 | | 10 |
|* 13 | HASH JOIN | | 3 | 120 | | 7 |
|* 14 | TABLE ACCESS FULL | PROFILE | 6 | 198 | | 4 |
|* 15 | TABLE ACCESS FULL | PROFILE_TYPE | 1 | 7 | | 2 |
|* 16 | INDEX RANGE SCAN | SYS_C0019777 | 1 | 7 | | 1 |
| 17 | TABLE ACCESS BY INDEX ROWID| TBL_BDA_OFFICE | 1 | 10 | | 1 |
|* 18 | INDEX UNIQUE SCAN | SYS_C0019800 | 1 | | | |
| 19 | TABLE ACCESS BY INDEX ROWID | TBL_BDA_AGENCY_RESP_REP | 2 | 26 | | 2 |
|* 20 | INDEX RANGE SCAN | IDX_AGECYRESP_AGNCYID | 2 | | | 1 |
| 21 | TABLE ACCESS BY INDEX ROWID | USER_ | 1 | 22 | | 1 |
|* 22 | INDEX UNIQUE SCAN | USER_PK | 1 | | | |
|* 23 | INDEX RANGE SCAN | IDX_ATTVAL_ENTATTID | 1 | | | 1 |
| 24 | TABLE ACCESS FULL | TBL_BDA_USR_ISS_GRP | 234 | 702 | | 2 |
| 25 | TABLE ACCESS FULL | TBL_BDA_ISS_GROUP | 2 | 24 | | 2 |
|* 26 | TABLE ACCESS BY INDEX ROWID | TBL_BDA_AGENCY_RESP_REP | 1 | 7 | | 3 |
|* 27 | INDEX RANGE SCAN | IDX_AGECYRESP_AGNCYID | 2 | | | 1 |
Predicate Information (identified by operation id):
2 - filter( NOT EXISTS (SELECT /*+ */ 0 FROM "TBL_BDA_AGENCY_RESP_REP" "T" WHERE "T"."AGENCY_ID"=:B1
AND "T"."ISS_GRP_ID"=TO_NUMBER('%')))
3 - access("I"."ISS_GRP_ID"="J"."ISS_GRP_ID"(+))
4 - access("SYS_ALIAS_1"."ISS_GRP_ID"="I"."ISS_GRP_ID"(+))
5 - filter("K"."ATTRIBUTE_VALUE" IS NOT NULL AND "K"."ATTRIBUTE_VALUE" LIKE '%')
8 - filter(NVL("SYS_ALIAS_1"."RESP_USR_ID",'0') LIKE '%' OR NVL("SYS_ALIAS_1"."RESP_USR_ID",'0')='k')
10 - filter(NVL("G"."OFFICE_ID",0)=TO_NUMBER('%'))
13 - access("L"."PROFILE_TYPE_ID"="B"."PROFILE_TYPE_ID")
14 - filter(UPPER("B"."PROFILE_NM") LIKE '%' AND (TO_CHAR(NVL("B"."PROFILE_ID",0)) LIKE '%' OR
NVL("B"."PROFILE_ID",0)=TO_NUMBER('a')))
15 - filter("L"."APPLICATION_CD"='BDA')
16 - access("B"."PROFILE_ID"="F"."AGENCY_ID"(+))
18 - access("G"."OFFICE_ID"(+)="F"."OFFICE_ID")
20 - access("B"."PROFILE_ID"="SYS_ALIAS_1"."AGENCY_ID"(+))
22 - access("H"."USERID"(+)="SYS_ALIAS_1"."RESP_USR_ID")
23 - access("K"."ENTITY_ID"='PROFILE.'||TO_CHAR("B"."PROFILE_ID"))
26 - filter("T"."ISS_GRP_ID"=TO_NUMBER('%'))
27 - access("T"."AGENCY_ID"=:B1)
Note: cpu costing is off
57 rows selected.
Elapsed: 00:00:01.08
Please help me.
Aashish S.Hello Eric,
Here is the code:
SELECT DISTINCT
K.ATTRIBUTE_VALUE AGENCY_ID,
B.PROFILE_NM ,
NVL(G.OFFICE_DESC,'--') OFFICE_DESC,
f.OFFICE_ID,
B.PROFILE_ID,
'%' ROLE,
'%' LAYOUT,
case
WHEN 'flagB' = '%' THEN
NVL(J.ISS_GRP_DESC,'BILLING')
WHEN 'flagO' = '%' THEN
NVL(J.ISS_GRP_DESC,'ORDERING')
WHEN 'flag' = '%' THEN
NVL(J.ISS_GRP_DESC,'BILLING/ORDERING')
else
NVL(J.ISS_GRP_DESC,' ')
END ISS_GRP_DESC,
DECODE(NVL(H.USERID,' ') ,' ','--','<a sbcuid_in=' || H.USERID || ' target=NEW >'||H.FIRSTNAME || ' ' || H.LASTNAME ||
'( ' || H.USERID || ' )</a>' ) USER_NAME
from
PROFILE_PORTAL B ,
TBL_BDA_AGENCY_RESP_REP C ,
TBL_BDA_AGENCY_OFFICE F,
TBL_BDA_OFFICE G,
USERS_PORTAL H,
TBL_BDA_USR_ISS_GRP I ,
TBL_BDA_ISS_GROUP J,
ATTRIBUTE_VALUES_PORTAL K,
PROFILE_TYPE_PORTAL L
WHERE
B.PROFILE_ID = F.AGENCY_ID (+)
AND B.PROFILE_ID = C.AGENCY_ID (+)
AND G.OFFICE_ID (+)= F.OFFICE_ID
AND H.USERID (+)= C.RESP_USR_ID
AND C.ISS_GRP_ID = I.ISS_GRP_ID (+)
AND I.ISS_GRP_ID = J.ISS_GRP_ID(+)
AND 'PROFILE.'||B.PROFILE_ID = K.ENTITY_ID(+)
AND K.ATTRIBUTE_VALUE IS NOT NULL
AND L.PROFILE_TYPE_ID = B.PROFILE_TYPE_ID
AND L.APPLICATION_CD='BDA'
AND NOT EXISTS
(SELECT agency_id
FROM TBL_BDA_AGENCY_RESP_REP t
WHERE t.ISS_GRP_ID IN (1)
AND t.AGENCY_ID = C.AGENCY_ID)
AND K.ATTRIBUTE_VALUE LIKE '%'
AND UPPER(B.PROFILE_NM) LIKE UPPER('%')
AND (to_char(NVL(B.PROFILE_ID,0))
LIKE '%'
OR NVL(B.PROFILE_ID,0) IN (1))
AND NVL(G.OFFICE_ID,0) IN (1)
AND (to_char(NVL(C.RESP_USR_ID,'0'))
LIKE '%'
OR NVL(C.RESP_USR_ID,'0') IN ('%'))
ORDER BY PROFILE_NM
This is the Query and the query takes some mins. to run in prod environment.
From the Query plan ,I am not able to get any idea for optimization.
Now,Can you tell me which steps I need to follow to run it faster and which all modifications should be made?
Thanks.
Aashish S.
Maybe you are looking for
-
Mail notification sound plays after I have read a new message
When a new message comes in, the mail sound does not play right away. Often I will see the email and read it. Then, some time after I've finished and the screen is locked again, the sound plays. This problem occured with iOS 4 and still happens in iO
-
Apple Personal LaserWriter LS test page
Without using a Mac, how does one get an Apple Personal LaserWriter LS to print a test page? There's one on eBay I'd like the seller to test before I make a bid and I can't find anything on Apple's KB. TIA.
-
MacBook Pro with Draft n card - not showing n
I just got a Dell 1500 draft n card for my CoreDuo MacBook Pro. I installed it and the n enabler utility, but it is still not showing up as n compatible in Network Utility. I have installed the AirPort Base Station Updater, repaired permissions, rebo
-
Can anyone tell me how to stop my screen flickering ?
It goes light and dark, but never black. It just dims and bright. maybe 2-3 times every 10 seconds .
-
Conditional build tags with character styles and ignored text
RoboHelp HTML v8.0.2.208 Windows XP Professional Version 2002 Service Pack 3 with 2 GB of RAM Output: WebHelp and HTML Help I have recently moved my projects from RH HTML X5 to RH HTML 8 and this is when the following problem appeared. I use lots of