We are currently upgrading one of our ERP instances from 11.5.10.2 to R12.2.5. One of the pre-upgrade steps is to execute the data fix script ap_wrg_11i_chrg_alloc_fix.sql. However, this script has been running very very slow. After 4 weeks of monitoring, logging SRs with Oracle, escalating etc., we started a group chat today with our internal experts. We had Ali, Germaine, Aditya, Mukhtiar, Martha Gomez and Zoltan. I also invited our top notch EBS Techstack expert John Felix. After doing explain plan on the sql, Based on the updates being done by the query I predicted that it will take 65 days to complete.
John pointed out that the query was using the index AP_INVOICE_DISTRIBUTIONS_N4 that had a very high cost. We used an sql profile that replaced AP_INVOICE_DISTRIBUTIONS_N4 with AP_INVOICE_DISTRIBUTIONS_U1. The query started running faster and my new prediction was that it would complete in 5.45 days.
John mentioned that now another select statement was using the same index AP_INVOICE_DISTRIBUTIONS_N4 that had a very high cost.
After discussing among ourselves, we decided to drop the index, run the script and re-create the index. Aditya saved the definition of the index and dropped it.
DBMS_METADATA.GET_DDL('INDEX','AP_INVOICE_DISTRIBUTIONS_N4','AP')
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE INDEX "AP"."AP_INVOICE_DISTRIBUTIONS_N4" ON "AP"."AP_INVOICE_DISTRIBUTIONS_ALL" ("ACCOUNTING_DATE")
PCTFREE 10 INITRANS 11 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "APPS_TS_TX_IDX"
1 row selected.
SQL> drop index AP.AP_INVOICE_DISTRIBUTIONS_N4;
Index dropped.
The updates started happening blazing fast. The whole thing got done in 39 minutes and we saw the much awaited:
SQL> set time on
16:34:16 SQL> @ap_wrg_11i_chrg_alloc_fix.sql
Enter value for resp_name: Payables Manager
Enter value for usr_name: 123456
-------------------------------------------------------------------------------
/erp11i/applcsf/temp/9570496-fix-16:34:40.html is the log file created
-------------------------------------------------------------------------------
PL/SQL procedure successfully completed.
17:13:36 SQL>
John pointed out that the query was using the index AP_INVOICE_DISTRIBUTIONS_N4 that had a very high cost. We used an sql profile that replaced AP_INVOICE_DISTRIBUTIONS_N4 with AP_INVOICE_DISTRIBUTIONS_U1. The query started running faster and my new prediction was that it would complete in 5.45 days.
John mentioned that now another select statement was using the same index AP_INVOICE_DISTRIBUTIONS_N4 that had a very high cost.
After discussing among ourselves, we decided to drop the index, run the script and re-create the index. Aditya saved the definition of the index and dropped it.
DBMS_METADATA.GET_DDL('INDEX','AP_INVOICE_DISTRIBUTIONS_N4','AP')
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE INDEX "AP"."AP_INVOICE_DISTRIBUTIONS_N4" ON "AP"."AP_INVOICE_DISTRIBUTIONS_ALL" ("ACCOUNTING_DATE")
PCTFREE 10 INITRANS 11 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "APPS_TS_TX_IDX"
1 row selected.
SQL> drop index AP.AP_INVOICE_DISTRIBUTIONS_N4;
Index dropped.
The updates started happening blazing fast. The whole thing got done in 39 minutes and we saw the much awaited:
SQL> set time on
16:34:16 SQL> @ap_wrg_11i_chrg_alloc_fix.sql
Enter value for resp_name: Payables Manager
Enter value for usr_name: 123456
-------------------------------------------------------------------------------
/erp11i/applcsf/temp/9570496-fix-16:34:40.html is the log file created
-------------------------------------------------------------------------------
PL/SQL procedure successfully completed.
17:13:36 SQL>
From 65 days to 5.45 days to 39 minutes. Remarkable. Thank you John for your correct diagnosis and solution.
No comments:
Post a Comment