Cost Based Optimizer, Rule Based Optimizer e Hints

venerdì 26 gennaio 2007 alle 26:47 | Pubblicato su Performance Tuning | 3 commenti

Ieri ho scoperto una cosa nuova (meglio tardi che mai). In Oracle 10gR2 abbiamo settato a livello di sessione l’ottimizzatore a RULE, sperando di non avere quell’effetto collaterale del Cost Based Optimizer (CBO) di cambiare piano di esecuzione per le stesse query quando sono variate alcune statistiche. Generalmente il CBO pare funzionare bene, ma tal volta (nel mio caso molto probabilmente è un problema di bind variables e quindi del meccanismo di “bind variable peeking”) non fa le cose per bene. C’è però un ma, se in una particolare query aggiungo un hint, ad esempio per specificare l’uso di un indice, allora il piano di esecuzione di tale query viene generato utilizzando CBO. Questa cosa si vede facilmente attivando l'”autotrace” in SQL*Plus, il piano di esecuzione della query con l’hint ha anche i costi associati ai vari passi; senza hint i costi non ci sono.

P.S.

Ma qualcuno sa se Oracle salva i valori delle bind variables quando in CBO genera il piano di esecuzione con il meccanismo del peeking? Secondo me sarebbe molto sensato per capire se l’ottimizzatore sballa o se veramente gli vengono passati dei valori particolari.

3 commenti »

RSS feed for comments on this post. TrackBack URI

  1. […] un problema di “performance tuning” che ho avuto tempo fa e di cui ho già accennato in questo post. Il problema si verificava con l’applicazione Java sviluppata nell’azienda per la quale […]

  2. Mah, in 10gR2 RULE è obsoleto e non dovrebbe funzionare del tutto, a favore del CBO.
    A mio personale parere l’uso di RULE è comunque indice di presenza di problemi vari relativi allo schema dati e alle statistiche. Tom Kyte ha scritto molto sull’argomento.
    Devo dire che il problema del piano salvato per primo nella shared pool col peeking l’ho incontrato anch’io. Non ne sono venuto a capo…

  3. […] dai miei superiori e a cui non ho potuto controbattere seriamente a causa dei problemi di cui ho già parlato. Una effetto di tale scelta a cui non avevo pensato, ma che in effetti è del tutto ragionevole e […]


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Crea un sito o un blog gratuitamente presso WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: