+ All Categories
Home > Documents > E-Business Suite and Oracle Database 10g Ahmed Alomari, Applications Performance Group Oracle...

E-Business Suite and Oracle Database 10g Ahmed Alomari, Applications Performance Group Oracle...

Date post: 15-Dec-2015
Category:
Upload: kiya-parmley
View: 220 times
Download: 1 times
Share this document with a friend
45
E-Business Suite and Oracle Database 10g Ahmed Alomari, Applications Performance Group Oracle Corporation
Transcript

E-Business Suite and Oracle Database 10g

Ahmed Alomari,Applications Performance GroupOracle Corporation

Agenda

• Certification Details• 10g Features

• Manageability• Optimizer• PL/SQL• Parallel Execution• SQL and Library Cache Optimizations• JDBC• AWR• DB Console• Applications Performance Improvements

• Q &A

10g Certification with 11i

• 10gR1 Database (10.1.0.4) Certified with 11i• 11.5.9 CU2 with Interoperability patch 3129264.• 11.5.10 with Interoperability patch 4332078.• MetaLink Note 282038.1 (10gR1 Interoperability note for

Oracle Applications 11i)

• 10gR2 Database (10.2.0.2) Certified with 11i• 11.5.9 CU2 with 10gR2 Interop patch 4653217.• 11.5.10 CU2 with 10gR2 Interop patch 4653225.• MetaLink Note 362203.1 (10gR2 Interoperability note for

Oracle Applications 11i)

10g Features - Manageability

• Automatic Workload Repository (AWR)• “Data Warehouse” of the Database• Replacement for StatsPack• Takes periodic snapshots

• Automatic Database Diagnostic Monitor (ADDM)• Performance Diagnostic engine in the database• Automatically diagnoses performance problems • Provides Root Cause Analysis with recommended solutions• Identifies non-problems areas• Integrates all components

10g Features - Manageability

• Automatic SGA tuning• Automatically sizes the individual SGA caches:

• Buffer cache• Shared pool• Java pool

• Uses Advisory information to dynamically size the caches.• Just set sga_target=<SGA size>

• sga_target=10G

10g Features – Optimizer Enhancements

• RBO Rest in Peace!!• CPU Costing• Cost Based Transformations

• Sub-query un-nesting• View merging• Pushing of join predicates

• Cartesian Joins no longer considered when a connection exists.• Hash based Aggregation

• HASH GROUP BY row source instead of SORT GROUP BY

• Runtime execution plans available via v$sql_plan.• Bind variable values are captured via v$sql_bind_capture

10g Features – Optimizer Enhancements

• Plan table includes the following new columns:• CPU_COST : estimated CPU cost • IO_COST: estimated I/O cost• TEMP_SPACE : estimated temporary space, in bytes, used by the

operation; Network usage for query servers running on different nodes will be estimated

• Time: an estimate of how long each row source will take.• Query Block Name (qblock_name) – can be used in conjunction

with query block hint.

• dbms_xplan.display_cursor() can be used to show runtime plan of a cursor.

10g Features – Optimizer Enhancements

• New Format includes CPU cost, and time.------------------------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |------------------------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 74 | 7 (0)| 00:00:01 || 1 | SORT AGGREGATE | | 1 | 74 | | ||* 2 | TABLE ACCESS BY INDEX ROWID | MTL_ITEM_CATEGORIES | 1 | 9 | 2 (0)| 00:00:01 || 3 | NESTED LOOPS | | 1 | 74 | 7 (0)| 00:00:01 || 4 | NESTED LOOPS | | 1 | 65 | 5 (0)| 00:00:01 || 5 | MERGE JOIN CARTESIAN | | 1 | 42 | 4 (0)| 00:00:01 ||* 6 | TABLE ACCESS FULL | FINANCIALS_SYSTEM_PARAMS_ALL | 1 | 4 | 4 (0)| 00:00:01 || 7 | BUFFER SORT | | 1 | 38 | 0 (0)| 00:00:01 ||* 8 | TABLE ACCESS BY INDEX ROWID| PO_APPROVED_SUPPLIER_LIST | 1 | 38 | 0 (0)| 00:00:01 ||* 9 | INDEX RANGE SCAN | PO_APPROVED_SUPPLIER_LIST_N1 | 1 | | 0 (0)| 00:00:01 ||* 10 | TABLE ACCESS BY INDEX ROWID | PO_ASL_STATUS_RULES | 1 | 23 | 1 (0)| 00:00:01 ||* 11 | INDEX RANGE SCAN | PO_ASL_STATUS_RULES_U1 | 4 | | 0 (0)| 00:00:01 ||* 12 | INDEX RANGE SCAN | MTL_ITEM_CATEGORIES_N3 | 3695 | | 2 (0)| 00:00:01 |------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

2 - filter("MIC"."INVENTORY_ITEM_ID"=TO_NUMBER(:ITEM_ID)) 6 - filter(NVL("ORG_ID",NVL(TO_NUMBER(DECODE(SUBSTRB(:B1,1,1),' ',NULL,SUBSTRB(:B2,1,10))),(-99)))=NVL(TO_NUMBER(DECODE(SUBSTRB(:B3,1,1),' ',NULL,SUBSTRB(:B4,1,10))),(-99))) 8 - filter("CATEGORY_ID" IS NOT NULL AND "VENDOR_SITE_ID"=TO_NUMBER(:VENDOR_SITE_ID) AND ("USING_ORGANIZATION_ID"=(-1) OR "USING_ORGANIZATION_ID"=DECODE(:TYPE_LOOKUP_CODE,'BLANKET',"USING_ORGANIZ ATION_ID",:SHIP_TO_ORGANIZATION_ID)) AND NVL("DISABLE_FLAG",'N')='N') 9 - access("ITEM_ID" IS NULL AND "VENDOR_ID"=TO_NUMBER(:VENDOR_ID)) filter("VENDOR_ID"=TO_NUMBER(:VENDOR_ID)) 10 - filter("ASR"."BUSINESS_RULE"='1_PO_APPROVAL') 11 - access("ASL_STATUS_ID"="ASR"."STATUS_ID") 12 - access("CATEGORY_ID"="MIC"."CATEGORY_ID")

10g Features – Optimizer Enhancements

• New Format includes CPU cost, time, and temp space (if used).

---------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |---------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 18M| 15G| | 1681K (7)| 05:36:16 ||* 1 | HASH JOIN | | 18M| 15G| 1434M| 1681K (7)| 05:36:16 || 2 | TABLE ACCESS FULL| OE_ORDER_HEADERS_ALL | 3937K| 1389M| | 62020 (2)| 00:12:25 ||* 3 | TABLE ACCESS FULL| OE_ORDER_LINES_ALL | 18M| 9685M| | 1053K (10)| 03:30:41 |---------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

1 - access("H"."HEADER_ID"="L"."HEADER_ID") 3 - filter("L"."CANCELLED_FLAG"='N')

10g Features – Optimizer Enhancements

• Workload Statistics• Workload statistics allows the optimizer to learn the patterns

of load and the duration of peak loads.• Adaptive execution plans.

• The CBO might choose different execution plans based on the workload statistics.

10g Features – Optimizer Enhancements

• SQL Tune• Optimizer spends more time by widening the search space

and sampling in order to generate a more efficient plan.• SQL Tune profiles are saved.• Profiles can be created via the SQL Tuning Advisor via DB

Console.• Extremely useful for complex Applications SQL for which the

default plan was not optimal.• Immediate performance relief.

10g Features – PL/SQL Enhancements

• Every line of PL/SQL code runs 2X faster.• Global Optimizer.• Improved Native Compilation.• Reduced collections memory footprint (15%).

10g Features – PL/SQL Enhancements

• Global Optimizer• Eliminates temporary operands generated by the PL/SQL

compiler. Such elimination causes less storage to be used and less time taken initializing temporary values.

• Computes certain operations during compilation rather that during execution.

• Reuses expression values. • Converts single row fetches to bulk fetches.

10g Features – PL/SQL Enhancements

• Native Compilation• Natively compiled PL/SQL code executes even faster than

in earlier releases.• The natively compiled units are stored in the database as

BLOB data.• Improves RAC Deployment

• You can switch between native and interpreted compilation for stored PL/SQL code for debugging purposes.

10g Features

• Rename a Tablespace.• Online segment shrink.• Automatic undo retention tuning.• Semi-static VPD policies.

• Policy function is only invoked when context is reset.

• Partitioning• List Partitioning enhancements• Global hash partitioned indexes.

10g Features – SQL Optimization• FAST DUAL Optimization10g: SELECT SYSDATE FROM DUAL

call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 2 0.00 0.00 0 0 0 0Execute 40000 4.31 3.90 0 0 0 0Fetch 40000 0.86 0.66 0 0 0 40000------- ------ -------- ---------- ---------- ---------- ---------- ----------total 80002 5.17 4.57 0 0 0 40000

Rows Row Source Operation------- --------------------------------------------------- 20000 FAST DUAL (cr=0 pr=0 pw=0 time=106978 us)

9iR2: SELECT SYSDATE FROM DUAL

call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 2 0.01 0.00 0 0 0 0Execute 40000 3.70 3.64 0 0 0 0Fetch 40000 5.94 5.56 0 120000 0 40000------- ------ -------- ---------- ---------- ---------- ---------- ----------total 80002 9.65 9.22 0 120000 0 40000

Rows Row Source Operation------- --------------------------------------------------- 20000 TABLE ACCESS FULL DUAL (cr=60000 pr=0 pw=0 time=2622560 us)

10g Features

• Library Cache Optimizations• New efficient mutex is used to pin/unpin cursors• Reduces library cache pin latch contention considerably• Performance Improvement ranges from 10%-90% depending

on the amount of time spent in library cache latch contention (due to pins).• Init.ora parameter _kks_use_mutex_pin=TRUE enables this

optimization• Enabled by default in 10.2.0.2

10g Features

• Library Cache Optimizations• Optimize “special” cursors

• COMMIT• ROLLBACK• SAVEPOINT• ALTER SESSION

• Improves Applications performance 5-10%

10g Features

• 10g Parallel Execution Improvements – No Slave SQL------------------------------------------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib |------------------------------------------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 4285 | 301K| 168K (5)| 00:33:46 | | | || 1 | PX COORDINATOR | | | | | | | | || 2 | PX SEND QC (RANDOM) | :TQ10002 | 4285 | 301K| 168K (5)| 00:33:46 | Q1,02 | P->S | QC (RAND) ||* 3 | FILTER | | | | | | Q1,02 | PCWC | || 4 | SORT GROUP BY | | 4285 | 301K| 168K (5)| 00:33:46 | Q1,02 | PCWP | || 5 | PX RECEIVE | | 85689 | 6025K| 168K (5)| 00:33:46 | Q1,02 | PCWP | || 6 | PX SEND HASH | :TQ10001 | 85689 | 6025K| 168K (5)| 00:33:46 | Q1,01 | P->P | HASH ||* 7 | HASH JOIN | | 85689 | 6025K| 168K (5)| 00:33:46 | Q1,01 | PCWP | || 8 | PX RECEIVE | | 892K| 21M| 10147 (14)| 00:02:02 | Q1,01 | PCWP | || 9 | PX SEND BROADCAST | :TQ10000 | 892K| 21M| 10147 (14)| 00:02:02 | Q1,00 | P->P | BROADCAST || 10 | PX BLOCK ITERATOR | | 892K| 21M| 10147 (14)| 00:02:02 | Q1,00 | PCWC | ||* 11 | TABLE ACCESS FULL| AP_AE_HEADERS_ALL | 892K| 21M| 10147 (14)| 00:02:02 | Q1,00 | PCWP | || 12 | PX BLOCK ITERATOR | | 63M| 2846M| 158K (4)| 00:31:41 | Q1,01 | PCWC | ||* 13 | TABLE ACCESS FULL | AP_AE_LINES_ALL | 63M| 2846M| 158K (4)| 00:31:41 | Q1,01 | PCWP | |------------------------------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):---------------------------------------------------

3 - filter(SUM(NVL("AEL"."ACCOUNTED_CR",0))<>SUM(NVL("AEL"."ACCOUNTED_DR",0))) 7 - access("AEL"."AE_HEADER_ID"="AEH"."AE_HEADER_ID" AND NVL("AEL"."ORG_ID",(-99))=NVL("AEH"."ORG_ID",(-99))) 11 - filter(TRUNC("AEH"."ACCOUNTING_DATE")<=TRUNC(SYSDATE@!) AND "AEH"."GL_TRANSFER_FLAG"='Y') 13 - filter("AEL"."AE_LINE_TYPE_CODE"='LIABILITY')

10g Features - JDBC

• Improved connection cache• Separates physical and logical connection layers.

• Improved performance (~10%)• Bundled calls (single round trip per SQL call) as opposed to

2 or 3 round-trips: PARSE, EXECUTE, FETCH in 9i.• Automatic type and precision detection upon execution.

SELECT u.user_nameFROM fnd_user u where u.user_id=:1

call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 1 0.00 0.00 0 0 0 0Execute 1000 0.26 0.25 0 0 0 0Fetch 1000 0.17 0.18 0 3000 0 1000------- ------ -------- ---------- ---------- ---------- ---------- ----------total 2001 0.43 0.44 0 3000 0 1000

Rows Row Source Operation------- --------------------------------------------------- 1000 TABLE ACCESS BY INDEX ROWID OBJ#(60344) (cr=3000 pr=0 pw=0 time=63796 us) 1000 INDEX UNIQUE SCAN OBJ#(60363) (cr=2000 pr=0 pw=0 time=36983 us)(object id 60363)

Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ SQL*Net message to client 2003 0.00 0.00 SQL*Net message from client 2003 0.14 2.34

10g Features - JDBC

• Round-trips in 9i JDBC

SELECT u.user_nameFROM fnd_user u where u.user_id=:1

call count cpu elapsed disk query current rows------- ------ -------- ---------- ---------- ---------- ---------- ----------Parse 1 0.00 0.00 0 0 0 0Execute 1000 0.19 0.15 0 0 0 0Fetch 1000 0.24 0.17 0 3000 0 1000------- ------ -------- ---------- ---------- ---------- ---------- ----------total 2001 0.43 0.32 0 3000 0 1000

Rows Row Source Operation------- --------------------------------------------------- 1000 TABLE ACCESS BY INDEX ROWID OBJ#(60344) (cr=3000 pr=0 pw=0 time=67134 us) 1000 INDEX UNIQUE SCAN OBJ#(60363) (cr=2000 pr=0 pw=0 time=39483 us)(object id 60363)

Elapsed times include waiting on following events: Event waited on Times Max. Wait Total Waited ---------------------------------------- Waited ---------- ------------ SQL*Net message to client 1001 0.00 0.00 SQL*Net message from client 1001 0.35 1.29

10g Features - JDBC

• Round Trips in 10g - Bundled Calls

10g Features - Manageability

• AWR Reports• Includes Time Model Breakdown

• Total DB time• Total time in SQL• Total time in PL/SQL• Total time in Parsing

• Diff Report of two periods• Top SQL Section Reports

• Elapsed Time• CPU Time• Buffer Gets• Physical Reads• Executions• Parse Calls• Sharable Memory• Version Count

10g Features - Manageability

• Improved detailed timing (of DB time)• v$sys_time_model

STAT_NAME VALUE---------------------------------------------------------------- ----------DB CPU 3.9431E+11DB time 6.0332E+11Java execution elapsed time 0PL/SQL compilation elapsed time 1866649686PL/SQL execution elapsed time 1.3932E+10background cpu time 2.5332E+10background elapsed time 3.8919E+12connection management call elapsed time 14244419failed parse (out of shared memory) elapsed time 0failed parse elapsed time 7519740hard parse (bind mismatch) elapsed time 3131175hard parse (sharing criteria) elapsed time 2240364434hard parse elapsed time 1.0164E+10inbound PL/SQL rpc elapsed time 0parse time elapsed 2.8131E+10sequence load elapsed time 35252041sql execute elapsed time 5.8356E+11

SQL Exec

PLSQL Exec

Conn MgmtParse

Java Exec

10g Features - Manageability• Improved wait information• Wait Statistics rolled-up by class.

• New Wait Classes• Administrative • Application • Cluster • Commit • Concurrency • Configuration • Idle • Network • Other • Scheduler • System I/O

• User I/O

10g Features - Manageability• Improved wait information

• Latch and enqueue names are included in the wait. EVENT TOTAL_WAITS TIME_WAITED--------------------------------------------- ----------- -----------enq: CF - contention 11 18enq: FU - contention 258900 77846098enq: HW - contention 1 0enq: PS - contention 7097 640enq: TM - contention 4 1enq: TX - contention 3 2enq: US - contention 172 255latch: In memory undo latch 4 1latch: cache buffers chains 94978 67229latch: cache buffers lru chain 5989 1522latch: enqueue hash chains 24 3latch: library cache 1511 684latch: library cache lock 510 126latch: library cache pin 21 3latch: parallel query alloc buffer 30 2latch: row cache objects 53 39latch: session allocation 244439 144724latch: shared pool 831 187

10g Features - Manageability

• SQL Identification• New SQL_ID is used in place of SQL hash value to uniquely identify

SQL statements• Preserved across releases• Allows SQL statement statistics to be easily compared across upgrades.

SQL_ID HASH_VALUE------------- ----------SQL_TEXT--------------------------------------------------------------------------------66tmsr3446uqn 3359861460

SELECT WIAS.ACTIVITY_STATUS, WIAS.ACTIVITY_RESULT_CODE, WIAS.ASSIGNED_USER, WIAS.NOTIFICATION_ID, WIAS.BEGIN_DATE, WIAS.END_DATE, WIAS.DUE_DATE, WIAS.ERROR_NAME, WIAS.ERROR_MESSAGE, WIAS.ERROR_STACK FROM WF_ITEM_ACTIVITY_STATUSES WIAS WHERE WIAS.ITEM_TYPE = :B3 AND WIAS.ITEM_KEY = :B2 AND WIAS.PROCESS_ACTIVITY = :B1

10g Features - Manageability

• SQL Identification• Where is this SQL coming from?• SQLs originating from server side PL/SQL units can be

identified using the new information in V$SQL.• V$SQL (PROGRAM_ID, PROGRAM_LINE#)

select o.owner,o.object_name,o.object_type,s.program_line# from dba_objects o, v$sql s where o.object_id = s.program_id and s.sql_id ='66tmsr3446uqn‘;

OWNER OBJECT_NAME OBJECT_TYPE PROGRAM_LINE#---------- ------------------------------ --------------- -------------APPS WF_ITEM_ACTIVITY_STATUS PACKAGE BODY 76

D E M O N S T R A T I O N

AWR Report

10g Features

• DB Console• A component of 10g Grid Control• Complete Management Portal

• Alerts• Maintenance• Performance• Administration• Availability• Space Management• SQL Tuning Advisor

D E M O N S T R A T I O N

DB Control

11i/10g Batch Improvements

Order to Cash Batch 10g 9iR2 Improvement

High Volume Order Import 49.5K 37.5K 24%

Pick Release 46.2K 31K 33%

Ship Confirm 146K 107K 27%

11i/10g Performance Improvements

Territory Assignment (TAP) 10g 9iR2 Improvement

Assign Territory Accesses Type 1 1 hr 49 min 1 hr 56 min 6%

Assign Territory Accesses Type 2 1 hr 57 min 2 hrs 6 min 7%

Opportunities 2 hrs 40 min 3 hrs 32 min 25%

Leads 5 hrs 27 min 7 hrs 4 min 23%

11i/10g Performance Improvements

Payables (AP) 10g 9iR2 Improvement

Invoice Import (10,000 invoices) 12 minutes 26 minutes 54%

Accounting Engine (10K invoices) 7 minutes 8 minutes 12%

Approvals (10K invoices) 39 minutes 46 minutes 15%

11i/10g Performance Improvements

Human Resources (HRMS) 10g 9iR2 Improvement

Benefits (per life event) 2.69 seconds 3.11 seconds 13%

Payroll (35,000 employees) 8 hrs 32 minutes 9 hrs 44 minutes 12%

11i/10g Applications Reports ImprovementsReport Name 10g 9iR2 Improvement

Potential Revenue Summary 2 hrs 15 min 15 hrs 18 min 6.8X

Withholding Tax by Invoice Report 15 hrs 20 min 20 hrs 20 min 1.3X

Employee Assignments Report 12 min. 46 min. 4X

Purchase Summary By Category 37 min 1 hr 4 min 1.7X

Order/Invoice Detail Report 16 min 39 min 2.5X

Unbooked Orders Report 1 min 12 min 12X

References• Oracle’s Business runs on 10gR2

• 7.5 TB DB• 60+ Modules• 11.5.10• 10,000 concurrent users• 4 node RAC Cluster

• Dell• Order Management• 11.5.10• Peak volume: 3.5 million order lines per day• Web store• Linux RAC Cluster

References• BAE Systems

• 350 GB DB• 11.5.10• 6,000 users• 4 node RAC Cluster

• Timex• Order Management• 11.5.10• 44 million order lines• EDW – Supply Chain Intelligence• Linux

MetaLink ReferencesNote #: Description:

282038.1 Oracle Applications Release 11i

with Oracle Database 10gR1 (Interoperability Note)

362203.1 Oracle Applications Release 11i

with Oracle Database 10gR2 (Interoperability Note)

165195.1 Using AutoConfig to Manage System Configurations with Oracle Applications 11i

216205.1 Database Initialization Parameters and Configuration for Oracle Applications 11i

244040.1 Recommended Performance Patches for Oracle E-Business Suite

Q & A


Recommended