I’ve popped this note to the top of the stack because I’ve added an index to Randolf Geist’s series on parallel execution skew, and included a reference his recent update to the XPLAN_ASH utility.
This is the directory for a short series I wrote discussing how to interpret parallel execution plans in newer versions of Oracle.
- A quiz introducing Bloom Filters
- What we want to see in parallel execution plans
- Creating the demonstration data
- Parallel hash join with Broadcast strategy (and a note on 12c pq_replicate)
- Table Queues, message size, and Bloom filters
- Parallel hash join Hash/Hash distribution
For other aspects of parallel execution, here are links to several articles by Randolf Geist, published on his own blog or on Oracle’s Technet:
- Parallel Execution Analysis Using ASH – The XPLAN_ASH Tool (including notes on SQL Monitoring)
- XPLAN_ASH update – June 2014
- Understanding Parallel Execution – pt. 1
- Understanding Parallel Execution – pt. 2
One of the awkward problems you can encounter with parallel execution is data skew – which has the potential to make just one slave in a set do (almost) all the work hence reducing the performance to something close to serial execution times. has written a series of articles on Parallel Skew that has been published by AllthingsOracle over the last few months.
- Demonstrating Skew
- 12c Hybrid Hash distibution with skew detection
- Addressing skew through manual rewrites
- Skew caused by Outer Joins
And a summary posting from Randolf listing the 5 articles above, but also including a set of short videos on the topic.