DB2 Performance bei WITH AS

gorefest

Erfahrenes Mitglied
Hallo,

weiss jemand, ob die Verwendung von WITH AS bei DB2 für nicht-rekursive Aufruf nachteilig für die Performance ist?

Beispiel

Code:
WITH XAA AS (SELECT ID FROM FOO WHERE KOMPLIZIERT)
SELECT X.ID, Y.*
   FROM XAA X 
  INNER JOIN YAA Y
        ON Y.XID  = X.ID)

Wird das genestete Statemant wie ein View verwendet, oder spannt mir DB2 dabei eine temp Tabelle auf?

Danke+Grüße,
gore
 
Moin gorefest,

DB2 wird sich bei dem in diesem EINmaligen Zugriff auf die CTE innerhalb des Statements nicht für eine Persistierung als Temp-Tabelle entscheiden.

Und selbst ein mehrfaches Verwenden der "XAA" in dem Statement muss nicht zu einer Temp-Table führen.
Würdest du die CTE mehrmals in dem Statement ansprechen, dann legt der Optimizer zwar beim ersten Aufruf eine Temp-Table an - ggf. verzichtet er bei folgenden Aufrufen darauf (je nach den Accesspfaden, die beim ersten Versuch rauskamen).

Grüße
Biber
 

Neue Beiträge

Zurück