2. Independent consultant
Performance Troubleshooting
In-house workshops
Cost-Based Optimizer
Performance By Design
Oracle ACE Director
Member of OakTable Network
3. This session explains the new PX operators
introduced with Oracle 12c so that you know
them next time you look at a 12c Parallel
Execution plan
More info / details?
On my blog (tag 12cR1, New Features, Parallel Execution)
You want more?
Ask for my Parallel Execution Masterclass seminar
4. Three important aspects of Parallel Execution
Major 12c Parallel Execution new features
Some more new 12c Parallel Execution features
Conclusion / Q & A
5. Oracle Parallel Execution employs Producer
Consumer Model
Parallel Execution plan organised in so called
Data Flow Operations (DFOs) and DFO Trees
DFOs are organised in Parent child relations,
the child produces / sends data, the parent
consumes / receives data
Requires two sets of Parallel Execution Server
6.
7.
8.
9.
10. Producer Consumer model limitation: Only
one active pair of DFOs per DFO tree allowed
Depending on plan shape and operations
multiple DFO pairs could be active
To prevent this Oracle adds artificial blocking
operations that buffer data
=> Increased PGA / TEMP requirements
11.
12. Producer consumer model means redistribution of
data
Depending on distribution methods used and
actual data pattern the data might not be
distributed evenly
Data distribution skew means that some Parallel
Execution Servers need to process more data than
others
=> Not all PX Servers busy all the time
13.
14.
15. Three important aspects of Parallel Execution
Major 12c Parallel Execution new features
Some more new 12c Parallel Execution features
Conclusion / Q & A
16. New distribution method HYBRID HASH
Dynamic switch between BROADCAST and
HASH at execution time
Can detect and address data distribution skew
(current implementation only limited scope)
Only partially useful at present but is supposed
to be improved in upcoming releases
17.
18.
19.
20.
21. New feature CONCURRENT UNION ALL –
executes multiple branches of a UNION ALL
concurrently
Usually only relevant in case of serial branches
(or mixture of parallel and serial branches)
New operator PX SELECTOR selects one of the
available slaves to execute serial branch
22.
23.
24. New distribution method 1 SLAVE
Supports new plan shapes potentially
collapsing multiple DFO trees into a single one
Simplifies PX plan generation and avoids odd
side effects of having multiple DFO trees
But can lead to more BUFFERED operations
25.
26.
27. New feature parallel FILTER subquery
evaluation
Again simplifies PX plan shape and allows
filter subquery evaluation in the Parallel
Execution Servers => can reduce runtime
Prevents certain pre-12c plan shapes leading to
multiple DFO trees
Not always used, 12c can fall back to old shape
28.
29.
30. Three important aspects of Parallel Execution
Major 12c Parallel Execution new features
Some more new 12c Parallel Execution
features
Conclusion / Q & A
31. New feature replicated parallel full table scan –
instead of BROADCAST distribution
Only applicable to parallel full table scans
eligible for BROADCAST distribution
Instead of chunked parallel full table scan with
distribution afterwards each slave performs the
complete full scan directly
32.
33.
34. New feature EXPRESSION EVALUATION
operator
Can be used for scalar subqueries in the projection
of parallel plans (but also old shape possible
depending on SQL features used and combined)
Good: Plan shape corresponds now to the “rules”
how to read with scalar subqueries
Bad: Some odd behaviour at runtime spotted
35.
36.
37. Many new PX operators and plan shapes
introduced with 12c
Biggest change in this area since explicit
introduction of PX operators in Oracle 10g
Not as revolutionary as other new features but
a good sign that Oracle continues innovation in
this area, too