Re: Oracle - UNNEST-Hint
- From: Marc Blum <blum@xxxxxxxxxxx>
- Date: Sat, 19 Nov 2005 13:56:24 +0100
On 19 Nov 2005 04:43:43 -0800, "Florian Melcher" <homervondensimpsons@xxxxxx>
wrote:
>jetzt aber hoffentlich meine letzte Frage (ich kämpfe mich gerade
>durch die Untiefen der Oracle-Doku ;-) )
>
>Ich bin bei den Hints zur Steuerung des Optimizers über ,,UNNEST"
>gestossen, mir ist aber nicht ganz klar, was es bewirkt. In der Doku
>steht:
>
>,,The UNNEST hint specifies subquery unnesting. Subquery unnesting
>unnests and merges the body of the subquery into the body of the
>statement that contains it, allowing the optimizer to consider them
>together when evaluating access paths and joins."
>
>Bedeutet dass, das meine Subquery quasi "aufgelöst" wird und die
>Gesamtabfrage somit wesentlich schneller ausgeführt wird? Kann mir
>jemand den Ablauf hierbei etwas genauer veranschaulichen?
Der Optimizer schreibt Dein Statement um. Eine Subquery wird zu einem Join
umgebaut, Zwiebelschalen werden aufgelöst.
>
>Was sind die Vor- bzw. Nachteile?
Ziel ist es, einen effizienteren Zugriffspfad zu finden. Der Optimizer
kalkuliert eine Unzahl unterschiedlicher Zugriffspfade durch und entscheidet
sich dann für denjenigen, der ihm als der ressourcenschonendste erscheint.
Manchmal (aber immer seltener) muß/kann man dem Optimizer mit einem Hint auf die
Sprünge helfen. Solange Du nicht weißt, dass der Optimizer einen ungünstigen
Pfad eingeschlagen hat (EXPLAIN PLAN, SQL-Trace etc blabla), lass die Finger
davon.
--
Marc Blum
mailto:blumXXXSPAMXXX@xxxxxxxxxxx
http://www.marcblum.de
.
- References:
- Oracle - UNNEST-Hint
- From: Florian Melcher
- Oracle - UNNEST-Hint
- Prev by Date: Re: Oracle - Temporäre Tabellen
- Next by Date: Re: Zugriff auf Unterabfrage
- Previous by thread: Oracle - UNNEST-Hint
- Index(es):
Relevant Pages
|