Beruflich Dokumente
Kultur Dokumente
selectivity for each predicate. In some cases sample cardinality can also be used to estimate table cardinality. The internal tests, performed on large staging tables, show that optimizer can produce efficient execution plans by utilizing dynamic sampling feature at much shorter time compared to gathering table stats using conventional methods. Below are the details of one of the internal benchmark tests: Hardware configuration: 8 CPU cores x 16Gb RAM x 2Tb NAS server with Linux 64bit OS Target Database: Oracle 10.2.0.3 64bit Test configuration: query involves a large staging table with over 100 Million rows, joined with two smaller dimension tables
Test Scenarios No statistics were collected on the staging table. Computed statistics on the staging table using DBMS_STATS package.
Statistics / Sampling Execution Time Dynamic sampling: 10.6 sec Statistics computing: 53 min 26 sec
The overall run time for the second case was approximately 45 minutes longer compared to the dynamic sampling scenario. The optimizer estimated the identical run time for both cases execution plans. Enabling Dynamic Sampling at the system level may cause additional performance overhead, so it should be selectively applied only to the mappings, which run the queries against the large staging table by inserting Dynamic Sampling hints into the appropriate mapping SQLs. Refer to the publication Oracle Database Performance Tuning Guide (10g Release 2) for more details. Note that the DAC version released with Oracle Business Intelligence Applications Version 7.9.6 does not disable computing statistics at a table level. To workaround this limitation, you can abort the execution plan in DAC, mark the task Analyze Table for your staging table as Completed and restart the Execution Plan.
45
approved by Oracles EBS Performance Group. All Oracle EBS 11i and R12 customers should create the custom indexes using the DDL script provided below. If your source system is on of the following: EBS R12 EBS 11i release 11.5.10 EBS 11i release 11.5.9 or lower and it has been migrated to OATM*
then replace <IDX_TABLESPACE> with APPS_TS_TX_IDX prior to running the DDL. If your source system is EBS 11i release 11.5.9 or lower and it has not been migrated to OATM*, replace <IDX_TABLESPACE> with <PROD>X, where <PROD> is an owner of the table which will be indexed on LAST_UPDATE_DATE column. DDL script for custom index creation:
CREATE index AP.OBIEE_AP_EXP_REP_HEADERS_ALL ON AP.AP_EXPENSE_REPORT_HEADERS_ALL(LAST_UPDATE_DATE) CREATE index AP.OBIEE_AP_INVOICE_PAYMENTS_ALL ON tablespace <IDX_TABLESPACE> ; tablespace <IDX_TABLESPACE> ; AP.AP_INVOICE_PAYMENTS_ALL(LAST_UPDATE_DATE)
CREATE index AP.OBIEE_AP_PAYMENT_SCHEDULES_ALL ON AP.AP_PAYMENT_SCHEDULES_ALL(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AP.OBIEE_AP_INVOICES_ALL ON AP.AP_INVOICES_ALL(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AP.OBIEE_AP_HOLDS_ALL ON AP.HOLDS_ALL(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AP.OBIEE_AP_AE_HEADERS_ALL ON AP.AP_AE_HEADERS_ALL(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index CST.OBIEE_CST_COST_TYPES ON CST.CST_COST_TYPES(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index GL.OBIEE_GL_JE_HEADERS ON GL.GL_JE_HEADERS(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_HZ_ORGANIZATION_PROFILES ON AR.HZ_ORGANIZATION_PROFILES(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_HZ_CONTACT_POINTS ON AR.HZ_CONTACT_POINTS(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_HZ_CUST_SITE_USES_ALL ON AR.HZ_CUST_SITE_USES_ALL(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_HZ_LOCATIONS ON AR.HZ_LOCATIONS(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_HZ_RELATIONSHIPS ON AR.HZ_RELATIONSHIPS(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_HZ_CUST_ACCT_SITES_ALL ON AR. HZ_CUST_ACCT_SITES_ALL(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_HZ_CUST_ACCOUNT_ROLES ON AR.HZ_CUST_ACCOUNT_ROLES(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_HZ_PARTY_SITES ON AR.HZ_PARTY_SITES(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_HZ_PERSON_PROFILES ON AR.HZ_PERSON_PROFILES(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ;
46
CREATE index ONT.OBIEE_OE_ORDER_HEADERS_ALL ON ONT.OE_ORDER_HEADERS_ALL(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index ONT.OBIEE_OE_ORDER_HOLDS_ALL ON ONT.OE_ORDER_HOLDS_ALL(LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index PER.OBIEE_PAY_INPUT_VALUES_F ON PER.PAY_INPUT_VALUES_F (LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index PER.OBIEE_PAY_ELEMENT_TYPES_F ON PER.PAY_ELEMENT_TYPES_F (LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index PO.OBIEE_RCV_SHIPMENT_LINES ON PO.RCV_SHIPMENT_LINES (LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index PO.OBIEE_RCV_SHIPMENT_HEADERS ON PO.RCV_SHIPMENT_HEADERS (LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index AR.OBIEE_AR_CASH_RECEIPTS_ALL ON AR.AR_CASH_RECEIPTS_ALL (LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index WSH.OBIEE_WSH_DELIVERY_DETAILS ON WSH.WSH_DELIVERY_DETAILS (LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ; CREATE index WSH.OBIEE_WSH_NEW_DELIVERIES ON WSH.WSH_NEW_DELIVERIES (LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ;
Important: Make sure you use FND_STATS to compute statistics on the newly created indexes and update statistics on newly indexed table columns in the EBS database. Important: Since all indexes in this section have the prefix OBIEE_ and do not follow standard Oracle EBS Index naming conventions, Autopatch might fail during future upgrades if Oracle EBS introduces indexes on LAST_UPDATE_DATE columns for these tables. In such cases conflicting OBIEE_ indexes should be dropped and Autopatch restarted.
then replace <IDX_TABLESPACE> with APPS_TS_TX_IDX prior to running the DDL. If you source system is EBS 11i release 11.5.9 or lower and it has not been migrated to OATM*, replace <IDX_TABLESPACE> with <PROD>X, where <PROD> is an owner of the table which will be indexed on LAST_UPDATE_DATE column. DDL script for custom index creation:
CREATE index PO.RCV_TRANSACTIONS_N23 ON PO.RCV_TRANSACTIONS (LAST_UPDATE_DATE) INITIAL 4K NEXT 2M MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 0 INITRANS 2 MAXTRANS 255 PCTFREE 10 tablespace <IDX_TABLESPACE> ; CREATE index PO.PO_DISTRIBUTIONS_N13 ON PO.PO_DISTRIBUTIONS_ALL (LAST_UPDATE_DATE) INITIAL 4K NEXT 2M MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 0 INITRANS 2 MAXTRANS 255 PCTFREE 10 tablespace <IDX_TABLESPACE> ;
47
CREATE index PO.PO_LINE_LOCATIONS_N11 ON PO.PO_LINE_LOCATIONS_ALL (LAST_UPDATE_DATE) INITIAL 4K NEXT 2M MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 0 INITRANS 2 MAXTRANS 255 PCTFREE 10 tablespace <IDX_TABLESPACE> ; CREATE index PO.PO_LINES_N10 ON PO.PO_LINES_ALL (LAST_UPDATE_DATE) INITIAL 4K NEXT 4K MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 0 INITRANS 2 MAXTRANS 255 PCTFREE 10 tablespace <IDX_TABLESPACE> ; CREATE index PO.PO_REQ_DISTRIBUTIONS_N6 ON PO.PO_REQ_DISTRIBUTIONS_ALL (LAST_UPDATE_DATE) INITIAL 4K NEXT 250K MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 0 INITRANS 4 MAXTRANS 255 PCTFREE 10 tablespace <IDX_TABLESPACE> ; CREATE index PO.PO_REQUISITION_LINES_N17 ON PO.PO_REQUISITION_LINES_ALL (LAST_UPDATE_DATE) INITIAL 4K NEXT 250K MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 0 INITRANS 4 MAXTRANS 255 PCTFREE 10 tablespace <IDX_TABLESPACE> ; CREATE index PO.PO_HEADERS_N9 ON PO.PO_HEADERS_ALL (LAST_UPDATE_DATE) INITIAL 4K NEXT 1M MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 0 INITRANS 2 MAXTRANS 255 PCTFREE 10 tablespace <IDX_TABLESPACE> ; CREATE index PO.PO_REQUISITION_HEADERS_N6 ON PO.PO_REQUISITION_HEADERS_ALL (LAST_UPDATE_DATE) INITIAL 4K NEXT 250K MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 0 INITRANS 4 MAXTRANS 255 PCTFREE 10 tablespace <IDX_TABLESPACE> ; CREATE index AR.RA_CUSTOMER_TRX_N14 ON AR.RA_CUSTOMER_TRX_ALL (LAST_UPDATE_DATE) INITIAL 4K NEXT 4M MINEXTENTS 1 MAXEXTENTS 50 PCTINCREASE 0 INITRANS 4 MAXTRANS 255 PCTFREE 10 tablespace <IDX_TABLESPACE> ;
Important: Make sure you use FND_STATS to compute statistics on the newly created indexes and update statistics on newly indexed table columns in the EBS database. Since all custom indexes above follow Oracle EBS index standard naming conventions, any future upgrades would not be affected. *) Oracle Applications Tablespace Model (OATM): Oracle EBS release 11.5.9 and lower uses two tablespaces for each Oracle Applications product, one for the tables and one for the indexes. The old tablespace model standard naming convention for tablespaces is a product's Oracle schema name with the suffixes D for Data tablespaces and X for Index tablespaces. For example, the default tablespaces for Oracle Payables tables and indexes are APD and APX, respectively. Oracle EBS 11.5.10 and R12 use the new Oracle Applications Tablespace Model. OATM uses 12 locally managed tablespaces across all products. Indexes on transaction tables are held in a separate tablespace APPS_TS_TX_IDX, designated for transaction table indexes. Customers running pre-11.5.10 releases can migrate to OATM using OATM Migration utility. Refer to Oracle Metalink Note 248857.1 for more details.
48
Segment Statistics section for resource contentions caused by custom LAST_UPDATE_DATE indexes. Refer to Oracle RDBMS documentation for more details on AWR usage. Make sure you use the following pattern for creating custom indexes on the listed tables below:
CREATE index <Ppod>.OBIEE_<Table_Name> ON <Prod>.<Table_Name> (LAST_UPDATE_DATE) tablespace <IDX_TABLESPACE> ;
Table Name AP_EXPENSE_REPORT_LINES_ALL AP_INVOICE_DISTRIBUTIONS_ALL AP_AE_LINES_ALL AP_PAYMENT_HIST_DISTS AR_PAYMENT_SCHEDULES_ALL AR_RECEIVABLE_APPLICATIONS_ALL RA_CUST_TRX_LINE_GL_DIST_ALL RA_CUSTOMER_TRX_LINES_ALL BOM_COMPONENTS_B BOM_STRUCTURES_B CST_ITEM_COSTS GL_BALANCES GL_DAILY_RATES GL_JE_LINES MTL_MATERIAL_TRANSACTIONS MTL_SYSTEM_ITEMS_B OE_ORDER_LINES_ALL PAY_PAYROLL_ACTIONS RCV_SHIPMENT_LINES
49