Mittwoch, April 08, 2015

Concurrent UNION ALL (Randolf Geist)

Wie bereits gelegentlich erwähnt hat sich im Release 12c im Bereich der Parallel Execution allerlei getan - und Randolf Geist hat sich umfassend zu den meisten neuen Features geäußert. Eine wichtige Neuerung ist das Concurrent UNION ALL, also die Möglichkeit, mehrere über UNION ALL verbundene Teil-Operationen parallel zu verarbeiten. Wie üblich sind die Ausführungen des Herrn Geist ausgesprochen detailliert - und wie üblich werde ich ihnen in meiner Zusammenfassung nicht gerecht. Daher seien die folgenden Punkte wieder einmal nur als Link-Sammlung zu verstehen, auf die gelegentlich zurückzukommen wäre:
  • 12c Parallel Execution New Features: Concurrent UNION ALL - Part 1: vor 12c führte Oracle niemals mehrere getrennte Branches (also etwa über UNION ALL verknüpfte Blöcke) eines Execution Plans gleichzeitig aus: die Parallelisierung betraf immer nur Einzeloperationen. Mit 12c hat sich das geändert. Der Artikel nennt die zugehörigen kontrollierenden Hints (PQ_CONCURRENT_UNION, NO_PQ_CONCURRENT_UNION) und erläutert einen Fall, in dem das Feature sehr nützlich sein könnte, nämlich die parallele Verarbeitungen von Operationen, bei denen via DB-Link auf Remote-Quellen zugegriffen wird (was vor 12c eine Do-it-yourself-Parallelisierung erforderte). Der Artikel untersucht weiterhin den Parallelisierungsgrad der zugehörigen Operationen und ergänzt umfangreiche Tests. Im Plan sind parallele UNION ALL Elemente über einen PX SELECTOR Eintrag dargestellt.
  • 12c Parallel Execution New Features: Concurrent UNION ALL - Part 2: zeigt, dass das Feature automatisch aktiv wird, wenn man parallele und serielle Branches innerhalb eines UNION ALL mischt (dann erscheint für die seriellen Branches der PX SELECTOR und für die parallelen z.B. ein PX BLOCK ITERATOR). Es folgt eine umfassende Analyse des Laufzeitverhaltens (die ich hier nicht wiedergebe).
  • 12c Parallel Execution New Features: Concurrent UNION ALL - Part 3: erläutert die in Teil 1 skizzierte Optimierung der parallelen Verarbeitung verteilter Operationen genauer. Auch dazu gibt es wieder einen umfassenden Versuchsaufbau und auch dazu schreibe ich an dieser Stelle nicht mehr.
Wie gesagt: der Eintrag dient eher als Link-Sammlung, denn der Kommentierung. Um sinnvollere Kommentare zu ergänzen, müsste ich die Details besser verstanden haben - aber aktuell ist das Thema für mich ausschließlich von akademischem Interesse.

Keine Kommentare:

Kommentar veröffentlichen