Bind Variable Peeking, un bel post riassuntivo

giovedì 2 aprile 2009 alle 02:56 | Pubblicato su Performance Tuning | 2 commenti
Tag: , , ,

Kerry Osborne, recente ingresso del mio blogroll, nonché del mio feed reader, alcuni giorni fa ha pubblicato sul suo blog un bel post intitolato “Bind Variable Peeking – Drives Me nuts“. Osborne spiega come l’introduzione del meccanismo del bind variable peeking, di cui ho molto parlato anche io, abbia portato un po’ di scompiglio.  Il post è interessante e secondo me ben scritto, fa una breve storia che spiega come Oracle con la versione 9i abbia introdotto quel malefico meccanismo che ha fatto impazzire molte persone, me compreso,

Kerry Osborne ribadisce più volte di preferire la stabilità delle prestazioni alle prestazioni in assoluto, cioè preferisce un piano di esecuzione che dia tempi di esecuzione sulle stesse query omogenee, seppur non ottimali, piuttosto che l’instabilità tipica dei piani di esecuzione delle query in Oracle 9 e 10 con l’ottimizzatore basato sui costi (CBO) e il bind peeking. Questo chiaramente se non si può raggiungere l’ottimo, che come spiega Osborne è raggiungibile solo utilizzando i valori “letterali” nelle query che possono soffrire di questi problemi. 11g ha introdotto il meccansimo chiamato “Adaptive Cursor Sharing” che dovrebbe aver migliorato molto la situazione. Osborn poi ricorda anche che in 11g è migliorato molto il sistema di raccolta delle statistiche automatico.

Insomme come ho titolato si tratta di un bel post riassuntivo della grande problematica dell’instabilità dei piani con CBO e il bind peeking.

2 commenti »

RSS feed for comments on this post. TrackBack URI

  1. ogni volta che ci sono modifiche nel workload nei dati eccetera i piani di esecuzione gioco forza possono cambiare

    lo stesso fatto di prendere le statistiche (per inciso io non sono un fun delle AUTO statistiche) può assolutamente concorrere a questo, ecco perchè è importante fare un backup delle statistiche ogni volta che se ne prendono di nuove ed in questo senso il paradosso di Dave Ensor ripreso anche da Mogens Norgaard, che già avevo postato sul tuo blog, è sempre valido:

    https://cristiancudizio.wordpress.com/2008/07/18/oracle-11g-istogrammi-e-dbms_statsauto_sample_size/

    certo il bind variable peeking nelle versioni 9/10 ha certamente dei problemi anche in considerazione con che utilizzo si fa del parametro cursor_sharing ed è normale che il cursor sharing per sistemi OLTP sia essenziale (vedere anche nota metalink 430208.1)

    Complimenti Cristian, ottimo ed utilissimo riassunto

  2. Ciao Cristian,
    mi sono permesso di mandarti una mail sul tuo account di yahoo che hai messo nella home page

    Alessandro


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: