Oracle kann DML-Operationen parallelisieren. Das funktioniert bei UPDATE und DELETE-Anweisungen nur, wenn die entsprechende Tabelle partitioniert ist. Einfache INSERT-Anweisungen können nicht parallelisiert werden. Nur “INSERT INTO tab SELECT * FROM tab2“-Anweisungen können auch ohne Partitionierung parallelisiert werden. Folgendes Beispiel zeigt das empfohlene Vorgehen:

ALTER SESSION ENABLE PARALLEL DML;
INSERT /*+ PARALLEL (emp_big,4,1) */ INTO emp_big SELECT * FROM emp;
COMMIT;
ALTER SESSION DISABLE PARALLEL DML;

Allerdings hat die Parallelisierung einen Nachteil. Leider erfordert die Aufspaltung in mehrere Worker-Threads einen gewissen Overhead, so dass man nicht immer mit dem PARALLEL-Hint schneller ist. Weiterhin funktionieren Parallel-Hints nur mit einer Enterprise Edition von Oracle.

Von Webmaster, 25. März 2007, 21:15 Uhr

Kommentiere den Artikel oder setze einen Trackback

Bisher keine Kommentare zum Artikel

  1. Bisher keine Kommentare

Kommentiere den Artikel



Kommentare zu diesem Artikel über RSS 2.0-Feed verfolgen