Professional Documents
Culture Documents
Best Practices For Oracle E Business Suite Performance Tuning
Best Practices For Oracle E Business Suite Performance Tuning
Objectives
Overview of Performance Methodology for Optimizing Ebusiness suite
Outline best practices for Tuning E-Business layers
Tuning the Applications Tier
Tuning the Concurrent Manager
Tuning the Database Tier
Tuning the Applications
JVM1
App1
JVM2
App2
App3
App2
Apache
Oracle Forms
B
r
o
w
s
er
Lis
ten
er
mod_oc4j
mod_proxy
Ext.
procs
mod_plsql
oc4j_security
mod_osso
OAM
Concurrent
Processor,
Manager
Repository
RAC Database
+ db Listener
IdM
LDAP
OID
Buffer Cache
PL/SQL engine
Concurrency
100,000 + PLSQL packages
Procedural
Statement
Executor
Procedural stmts.
PL/SQL
SQL stmts.
Block
40,000 + Tables
SQL engine
Management
Storage
System Resource
Management
Management
200 + Products
FND, GL, AP, AR, OM, SC,
JAVA
Space
Management
Management
SQLNET
XML
Concurrent manager
Database
Management
MLS
JDK
JDBC
Indexes
OJSP
Memory
BPEL
Forms
OC4J
Out of Memory
OAFramework
WF
SOA
BI Publisher
SGA
Discoverer
CPU
OCI
Optimizer
Access Path
10
What
Where
When
Why
How
11
11
Sequence Diagram
12
12
Gather data
Start with Best Practices : (note:
1121043.1)
SQL Tuning
Trace files
SQLT output (note: 215187.1)
Trace Analyzer (note: 224270.1)
AWR Report (note: 748642.1)
AWR SQL Report (awrsqrpt.sql)
11g SQL Monitoring
SQL Tuning Advisor
PL/SQL Tuning
Product logs
PL/SQL Profiler (note: 808005.1)
Reports Tracing
note: 111311.1
13
D
atabase Tuning
AWR Report (note: 748642.1)
ADDM report (note: 250655.1)
Automated Session History (ASH)
Report
LTOM output (note: 352363.1)
orms Tuning
M
iddletier Tuning
JVM Logs
JVM Sizing (note: 362851.1)
JDBC Tuning (note: 278868.1)
O
13
14
15
16
Available Fixes
Best Practices in Performance for EBS
http://blogs.oracle.com/stevenChan/
17
18
19
20
21
21
22
23
25
26
27
29
30
31
32
33
34
35
36
37
38
40
42
43
44
45
46
47
48
49
(enq
Use global hash-partitioned indexes for hot leaf blocks - Identify via AWR "Top
logical IOs by Segment"
Some of these waits are commonly caused by bad SQL execution plans
i.e. :latch: cache buffer chains, %buffer busy waits, read by other session
Make sure to use ASSM and OATM tablespace model.
Increase INITRANS to alleviate ITL contention
Increase sequence caches
Work with support/consulting to evaluate if table/index partitioning will help
If the program allows, more frequent commits (batch size) can help by reducing the
CR (consistent read) work required
50
(gc
%, global%, etc...)
First do all the steps mentioned previously...
Check interconnect configuration -- Use Jumbo frames.
Do not use parallel query/dml across nodes
Use instance_groups & parallel_instance_groups settings
Review Parallel Concurrent Processing & Application Affinity config
12.1.3 introduced option to define node affinity at the program level
Concurrent -> Program -> Define
Perform RAC focused AWR analysis
51
53
cpu
elapsed
disk
query
current
-------- ---------- ---------- ---------- ---------0.00
0.00
0
0
0
780.79
728.70
0
1
0
6328.78
6757.80
225987 153846532
0
-------- ---------- ---------- ---------- ---------7009.58
7486.52
225987 153846533
0
rows
---------0
0
7674758
---------7674758
54
55
56
57
SPM (SQL Plan Management) quick relief while permanent solution arrives
Better density estimates for skewed data
Faster, more accurate statistics with AUTO_SAMPLE_SIZE
Extended statistics - address predicate correlation
Adaptive cursor sharing to address bind peeking issues
Some others
58
Empty
Block
Initially
Uncompressed
Block
Compressed
Block
Partially
Compressed
Block
Compressed
Block
59
60
Phil, ROWID
Pierre, ROWID
Rachel, ROWID
Rajiv, ROWID
Raoul, ROWID
Pablo, ROWID
Paula, ROWID
Paula, ROWID
Peter, ROWID
St
Su
Sam
P
Ph
H
Kar
C
Cr
Nancy, ROWID
Nancy, ROWID
Nancy, ROWID
Nicole, ROWID
Norm, ROWID
Luis, ROWID
Mark, ROWID
Mary, ROWID
Mike, ROWID
Mike, ROWID
Karl, ROWID
Kathy, ROWID
Kim, ROWID
Lance, ROWID
Di Lu Rh
Leaf Blocks
61
* http://www.oracle.com/technology/products/database/compression/compression-advisor.html
62
63
Special attention to
Testing of 11g or 10g workloads with Real Application Testing
Managing SQL Execution Plans and minimizing performance
degradation with11g SQL Plan Management
64
65
66
67
Use deferred activities to improve online response times for flows such as
Scheduling, PO Document Approval, etc.
Frequently purge runtime data (Conc Program: FNDWFPR)
Run $FND_TOP/sql/wffngen.sql to translate the activity function calls into
static calls
Disable retention on Workflow Queues
DBMS_AQADM.ALTER_QUEUE(queue_name=>:b1,retention_time=>0);
For high volume batch processing in RAC use ITEM_TYPE to Node affinity
68
Purge Portal
Purge programs can be configured, initiated and monitored
Set the execution frequency as well view history of purge
programs
69
70
References
71
References
SUMMARY
DOs..
DONTs..
Drop indexes
73
Oracle Store
Buy Oracle license and support online
today at
oracle.com/store
74
75
76
Q&
A
77
78