Montag, Juni 04, 2012

Doppelter Outer-Join

Jonathan Lewis zeigt in seinem Blog, wieso der Zugriff auf dba_subpart_col_statistics zu einem FTS der internen Tabelle tabcompart$ ("the thing that identifies the (logical) partition objects that make up a composite partitioned table") führt: Ursache ist, dass in der Definition der View der Outer Join einer Tabelle an zwei andere Tabellen enthalten ist, was normalerweise zu "ORA-01417: a table may be outer joined to at most one other table" führt. Um das Problem zu vermeiden, wird einer der Outer Joins in einer non-mergeable View verborgen, was dann im gegebenen Fall einen Index-Zugriff ausschließt. Immer wieder erstaunlich, welch seltsame SQL-Stücke im Data Dictionary zu finden sind ...

Nachtrag 07.07.2012: Mike Smithers zeigt, dass ora-01417 bei Verwendung der ANSI-Outer-Join-Syntax nicht auftritt, was für Jonathan Lewis' Fragestellung aber wohl eher irrelevant ist.

Keine Kommentare:

Kommentar veröffentlichen