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 the best, and most wide-ranging, source is Randolf Geist’s blog, which contains so much material that I’ve had to create a catalogue for my own convenience. All the following links point to work by Randof.
- Understanding Parallel Execution – pt. 1 (published on Oracle Technet)
- Understanding Parallel Execution – pt. 2 (published on Oracle Technet)
- Unnecessary buffer sort operations – concatenation
Parallel Data Skew
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. Randolf 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
- Catalogue of the above, plus links to a video series on the topic.
- Latest release note for xplan_ash / Latest version
- Parallel Execution Analysis Using ASH – The XPLAN_ASH Tool (including comprehensive notes on SQL Monitoring)
- Part 1 – Introduction
- Part 2
- Part 3
- Part 4
- Part 5
Parallel Execution New Features (12c)
- Hybrid Hash Distribution – part 1
- Hybrid Hash Distribution – part 2
- Concurrent Union All – part 1
- Concurrent Union all – part 2
- Concurrent Union All – part 3