PASS 2010 – Day 3 – KeyNote

Ultima Keynote, oggi molto tenica, con David DeWitt come speaker principale.

La keynote inizia can Rick Heigeis che parla ancora del PASS ed in particolare della Board of Directors e della “Vision” dell PASS per i prossimi 5 anni. L’idea è quella di crescere e di erogare 1 Milione di ore di formazione in tutto il mondo.

Viene annunciato che il prossimo PASS Summit 2011 sarà ancora a Seattle, ma ad ottobre, dall’11 al 14 Ottobre.

Finalmente è sul palco David DeWitt! Parlerà di Query Optimization, argomento estremamente interessante, dal punto di vista teorico e pratico. E anche molto simpatico!

I punti di cui discuterà sono

    • Fundamental principles: why is such hard problems
    • Regression problems

Viene mostrata una banale query  (aggregazioni, join, subquery), che ha potenzionalmente 22 MILIONI di query plan possibili. Ovvio che un Query Optimizer (QO) non possa valutarli tutti. E’ possibile ugualmente costruire un QO che prenda un piano tra I migliori in un tempo ragionevole?

Pat Selinger e’ l’inventore della “Cost Bast Optimization”, negli anni 70. Ancora oggi il problema dell’ottimizzazione è IL problema da risovere.

Utilizzando una query semplicissima

SELECT AVG(xy) FROM table WHERE column = value

David mostra come lavora il query optimizer, stimando i costi di due potenziali piani di esecuzione (scan della tabella o seek dell’indice), utilizzando le statistiche di distribuzione dei dati e calcolando il costo in termini di CPU e I/O di entrambi.

Viene ora analizzata una query leggermente più complessa per mostrare come è possibile applicare delle regole di equivalenza per produrre piani diversi ma logicamente equivalenti. Questo viene fatto per cercare di trovare il piano migliore. Il problema aumente ancora di dimensione quando si passa a valutare le trasformazioni fisiche che possono essere fatte (piano logico = cosa fare per risolvere la query; physical plan = come fare a risolvere il piano logico). Con 9 piani logici e 36 piani fisici per ogni piano logico, lo spazio dei piani di esecuzioni totalli è di 324 piani! Ed il tutto per una query molto semplice.

E’ quindi facile immaginare come per query complesse non sia possibile valutare tutti I piani di esecuzione prodotti.

Le statistiche di distrubuzione dei dati, o istogrammi, sono di fondamentale importanza per poter riuscire a prendere una piano di esecuzione ottimale. Ovviamente è importante che le statistiche siano aggiornate ed accurate: una bassa qualità delle statistiche si riflette immediatamente in una bassa qualità dei piani di esecuzione.

David sta ora spiegando gli algoritmi con cui si possono calcolare gli istrogrammi per cercare di minimizzare gli errori nella stima della selettività dei dati.

Posso assicurarvi che non ho mai visto una platea più attenta e silenziosa. Anche il numero di tweet è diminuto….

Tornado alla keynote, viene mostrato ora come il QO faccia uso di dynamic programming per poter riuscire a trovare dei piani di esecuzione ottimali anche quando lo spazio dei piani di esecuzione è enorme.

La conclusione è che è attualmente inevitabile avere dei piani di esecuzione sub-ottimali.

C’è un progetto, “Picasso”, su cui si sta lavorando per cercare di capire come risolvere il problema:

Picasso Plan Visualizer
http://dsl.serc.iisc.ernet.in/projects/PICASSO/index.html

Il progetto lavora su ogni database dato che il problema è comune a tutti i DB.

Per il futuro si pensa ad un QO che “impari” da se stesso, valutando i piani di esecuzioni prodotti, le statistiche stimate ed osservate, e quindi correggendosi di conseguenza, ri-ottimizzando la parte del piano di esecuzione che è affetta da problemi di performance. Si chiama “Dynamic Optimization”. Wow.

Take away points:

  • Query Optimization is harder than rocket science Smile
  • Three key phases of QO
  • The QO team of every DB vendors lives in fear of regressions

La keynote è finita. Standing ovation! (E non scherzo!)

PS

Se non avete pututo vedere la Keynote, guardatela registrata, nel vale la pena:

http://www.sqlpass.org/summit/na2010/LiveKeynotes/Thursday.aspx

Published giovedì 11 novembre 2010 19.16 by dmauri
Filed under:

Comments

# PASS Summit 2010 - Day 3

venerdì 12 novembre 2010 8.14 by SQL Server & Delphi

La terza giornata del PASS Summit 2010 si aperta con una keynote molto tecnica tenuta da David DeWitt