[SQL 2008] A pranzo con un Lead ...
Oggi ho avuto il piacere di pranzare, sempre nel Building 35, con Cesar Galindo-Legaria, Development Lead per SQL Server (e finalmente si parla un pò di spagnolo :-)).
Domande, curiosita', e poi dritti al secondo piano dove dirige il suo team di Engine Optimization.
A: Da quanti anni lavori in Microsoft e di cosa ti occupi?
C: Sono in Microsoft da 12 anni, dal 1996 ed ho sempre lavorato nel team di Data Optimization.
Quando sono arrivato ero all'interno del team di Access poi, dopo solo sei mesi, e' nata la specifica divisione per SQL Server
A: Quante persone lavorano per SQL Server?
C: In totale, ovvero contando tutte le divisioni (database engine, analysis services, reporting, ...) circa mille persone.
Nel mio gruppo, Data Optimization, lavorano dieci persone.
A: Pane e C++?
C: Si, C++. Algoritmi, algoritmi, algoritmi
A: Tutto il giorno?
C: Si, scriviamo e testiamo sofisticati e complessi algoritmi.
E' divertente ma anche complesso, un po' come scrivere compilatori per linguaggi di programmazione
A: Qual e' la cosa piu' difficile del tuo lavoro?
C: Puo' sembrare strano ma e' trovare la giusta misura, il giusto compromesso tra le richieste che arrivano ed il loro uso. Si tratta di trovare un giusto equilibrio tra costi e benefici, tra l'importanza del problema e quanto le persone (i dev, i dba) useranno la soluzione
A: Mi dai la tua TOP 5 relativa alle nuove caratteristiche e funzionalita' di SQL Server 2008?
C: compression ("Is the big one!"), star join optimization per datawarehouse, spatial data type, extension to plain fixing e to plain forcing.
Saliti al secono piano ho avuto il piacere di conoscere e scambiare due parole con il responsabile delle statistiche Peter Zabback ed il responsabile del cost estimation Campbell Fraser ("main focus on Costing/Cardinality Estimation and Statistics") ovvero colui che decide (fa decidere) quale strada deve prendere l'engine per risolvere le nostre query!
Con Campbell abbiamo fatto una bella chiaccherata, di cui rilancio un piccolo riassunto:
Il costo stimato deriva da un modello matematico applicato alla query in esame.
Questo modello considera:
- gli algoritmi utilizzati da ogni operatore presente all'interno del piano di esecuzione
- il numero di righe che sara' elaborato da ogni operatore
- la distribuzione dei dati interessati (statistiche) per ogni operatore
- il numero di processori sulla macchina (processori utilizzabili)
- la memoria (ram) a disposizione

Il costo stimato non potra' comunque essere mai "di parola", ovvero reale.
Fornisce un mezzo per poter confrontare (fare una stima) dei tempi di esecuzione su diversi piani di esecuzione.
L'ottimizzatore, quindi, sceglie semplicemente il piano che ha questa stima piu' bassa rispetto agli altri.