Road to Katmai - SQL Server 2008
03 Ottobre 2007
c/o Microsoft Italia
Centro Direzionale San Felice
Palazzo A
Via Rivoltana, 13 – Segrate
Proprio oggi si è tenuta una conferenza di anticipazione su il prossimo SQL Server 2008, nome in codice Katmai, la cui presentazione ufficiale, e rilascio, sono previsti per il 27 febbraio 2008.
L’evento è stato organizzato dall’Ugiss, lo User Group Italiano Sql Server, e si è tenuto presso la sede della Microsoft Italia, in via Rivoltana a Segrate (periferia est di Milano).
Questa è la pagina di presentazione dell’evento, dove è presente anche la scaletta degli argomenti, per comodit qui rappresentata con le modifiche in realt avvenute (Andrea Benedetti e Marco Frontini non erano presenti, come programmato, all’evento):
9.45 – 10.00 |
Introduzione alla giornata |
10.00 – 11.15 |
[DBA & DBD] Sql Server 2005 Public CTP – Data Platform Overview
Speaker: Davide Mauri |
11.15 – 12.30 |
[DBA & DBD] Database & Time-Dependent – Parte 2
Speaker: Gianluca Hotz |
12.30 – 13.45 |
Pranzo |
|
TBA
Track Database Administrator |
TBD
Track Database Developer |
13.45 – 15.00 |
Sql Server 2008 Public CTP – Novit per gli amministratori
Speaker: Gianluca Hotz |
Sql Server 2008 Public CTP – Novit per gli sviluppatori
Speaker: Davide Mauri |
15.00 – 16.15 |
Monitoring & Testing Tools
Speaker: Davide Mauri |
Advanced SQL CLR: ricerca di testi simili
Speaker: Marcello Poletti |
16.15 – 16.45 |
Coffee Break |
16.45 – 18.00 |
Visual Studio DB PRO for DBA |
(PS: Con sfondo grigio quelle che ho seguito)
Malgrado questa nuova versione sia più una naturale evoluzione di SQL Server 2005, piuttosto che una release completamente nuova e rinnovata, questa era una ghiotta occasione per vedere dove il team di sviluppo Microsoft ha apportato dei miglioramenti e delle aggiunte alla versione attualmente in uso.
La versione presa in considerazione è la CTP 4 (dello scorso luglio). Secondo i piani Microsoft è prevista ancora una CTP (la 5a) prima della versione definitiva.
Qualche notizia anche su UGISS. Ha da poco raggiunto i 1200 membri registrati (io sono uno di questi) e tra pochi giorni sar online il nuovo sito.
Ogni utente avr anche un blog gi pronto registrato a suo nome, il tutto attraverso la community.
La prima sessione, valida sia per DBA che per sviluppatori e tenuta da Davide Mauri, ha sottolineato le novit introdotte in questa nuova versione. Sono davvero tante, e quasi non si capisce come si sia aspettato così tanto per vederle finalmente implementate.
Si va dall’utilissimo nuovo operatore MERGE, che valuta l’allineamento delle tabelle. Quante volte infatti abbiamo scritto stored procedure che dovevano fare insert o update o delete tra due tabelle a seconda se i dati erano gi presenti in entrambe o meno? Questo nuovo comando ci viene in soccorso (occhio però alla sua potenza; studiare bene i BOL prima dell’utilizzo, mi verrebbe da dire).
Viene introdotto poi anche il tipo di dato “table” (diverso dalle variabili di tipo tabella; praticamente è come se le rendesse persistenti). In tal modo è possibile passare parametri tabella ad una SP).
Compare, anche se per ora menomato (valido infatti solo per la Select), l’intellisense all’interno dell’editor (Management Studio).
Viene immensamente arricchito il tipo di dato Datetime. Questa è una delle nuove feature più pubblicizzate.
È possibile ora separare la data (ovvero il giorno/mese/anno) dall’ora, e tenere separate queste due informazioni. Inoltre è ora possibile avere intervalli temporali dal 01-01-0001 al 31-12-9999 e vengono gestiti anche i nanosecondi (questo per venire incontro ad integrazioni con altri database, tipo DB2, che hanno gi questa precisione).
Altre caratteristiche più sistemistiche riguardano il Resource Governor (per ottimizzare l’utilizzo dell’hardware) e le Performance Data Collection (per tenere sotto controllo la crescita del database).
Davide Mauri, con la sua estrema velocit di esposizione, ci ha dato una dimostrazione diretta di tutto questo (ottima tra l’altro la struttura tecnica, grazie ai diversi schermi opportunamente piazzati nell’aula).
Mi ha lasciato un po’ spiazzato invece la seconda sessione tenuta dal famoso Gianluca Hotz, dato che faceva spesso riferimento ad una precedente sua esposizione, cui io non conoscevo. Estremamente teorica, ma interessante, verteva sui recenti studi di come espandere l’SQL Ansi con nuovi costrutti “time-dependent” per poter gestire gli intervalli di tempo, presenti in tante implementazioni produttive di Sql Server.
“Tutorial D”, è questo il nome del linguaggio allo studio, introduce nuovi operatori (Pack e Unpack ad esempio) indispensabili per scrivere query che analizzino sovrapposizioni temporali. Per ora è tutto a livello teorico, ma non ci vuole molto per capire l’indubbia utilit di queste estensioni, e si aspetta solo che vengano recepite dai produttori di db relazionali.
Per chi volesse approfondire l’argomento, segnalo il libro che ha riportato il relatore:
“Temporal Date and The Relational Model”
di C.J.Date, H.Darwen e N.A. Lorentzos
A questo punto ora di pranzo.
Forse grazie al fatto che i partecipanti non erano tantissimi (ad occhio e croce una 70ina - rettifico come mi ha scritto Davide Mauri, 130 ;-), è risultato ottimo il servizio di catering; spazio e cibo in abbondanza, servizio ottimo.
Era poi la prima volta che mi capitava di andare in Microsoft Italia, e devo dire che gli ambienti, pur non immensi, sono molto belli, puliti, moderni, confortevoli, e immersi in una enorme quantit di verde (beati loro!).
Il pomeriggio era costituito da sessioni separate tra DBA e Sviluppatori. Io, ovviamente, ho seguito la seconda.
La prima sessione, tenuta ancora da Davide Mauri, è stata molto tecnica, come d’altronde tutte quelle tenute da lui, ed ha approfondito le novit della nuova versione 2008.
Tra le tante segnalo quelle che mi sono rimaste più in mente.
Finalmente è possibile dichiarare ed inizializzare una variabile come in tutti i linguaggi che si rispettino, ovvero una cosa del tipo:
DECLARE @a int = 5
(come mai si sia aspettato così tanto ad introdurla, non mi è dato di sapere).
Vi sono poi i nuovi operatori di aumento e decremento di 1 (come in C#), ovvero += e -=.
È possibile quindi fare:
SET @a += 2
Un’altra innovazione utilissima e che far risparmiare parecchia digitazione, è la Insert multipla, ovvero:
INSERT MiaTabella(Col1, Col2) VALUES (0,0), (1,1), (2,2)
Si sono approfonditi poi con esempi il nuovo comando MERGE, gi accennato nella mattinata, e soprattutto i nuovi costrutti per le date. Grazie ai nanosecondi ora si possono scrivere tipi di dato ora del tipo:
14.23.45.123456
e sono state create le nuove funzioni MICROSECOND() E NANOSECOND().
Mi sa che la Merge e le nuove funzioni per le variabili temporali sono quelle che richiederanno il maggiore studio, data la loro notevole importanza.
La seconda sessione, tenuta dal recente MVP Marcello Poletti, ha riguardato direttamente una sua precedente attivit lavorativa. La ricerca di testo e caratteri all’interno di un database per una sorta di anagrafica di aspirapolveri e relativi sacchetti e produttori. Originale il suo approccio per l’esposizione dei concetti; ha utilizzato un normale Blocco Note al posto di PowerPoint (prima volta che vedo una cosa simile) ;-)
Questo bergamasco pieno di capelli lo conosco abbastanza, in quanto mi ha spesso aiutato sui problemi di T-SQL nei NG della Microsoft, e il suo approccio al problema è stato appunto con l’uso del dialetto di Sql Server. Dato che però la sua sessione riguardava l’integrazione del CLR all’interno del motore di Sql Server, ha sottolineato come vi siano alcuni casi in cui, pur con tutte le recenti estensioni, il solo uso di T-SQL non basta per risolvere il problema. Quest’ultimo, in questi frangenti, si basa sulle possibili tre scelte:
1) Operatore LIKE
2) Full Text Search
3) Soundex e Difference
Ne ha analizzato i pro e i contro, e si è visto come, soprattutto per le lingue non anglofone, tali costrutti perdano molto della loro efficacia (soprattutto quelli al punto 3). Peccato la mancanza di tempo proprio quando si stava andando nella direzione della scrittura dell’algoritmo di Levensthein per la risoluzione di questo problema.
L’ultima sessione, illustrata dall’inesauribile Davide Mauri, ha riguardato Visual Studio DB Pro, un componente di Visual Studio Team Suite specifico per i database, ed utile sia per chi li amministra (DBA) che per chi ci sviluppa, tant’è che il relatore ha scritto:
DB PRO = DBA + DBDEV
Purtroppo è invece saltata la sessione sulla versione Compact Edition di SQL Server 2005, dato che il previsto relatore (Marco Frontini) è stato bloccato da problemi di salute, e quindi c’è stato il riunificamento di amministratori e sviluppatori in un’unica aula.
Molto scarso, come ultimamente succede, il materiale fornito al termine della conferenza. Uno sacchetto con pochi depliant, di cui il più grosso su Office 2007 (e non si capisce cosa “che c’azzecca” con l’argomento del giorno) e due Cd con materiale informativo su SQL Server 2005, tra l’altro gi fornito in precedenti eventi. Inutile dire che almeno la versione CTP di SQL Server 2008 sarebbe stato, come minimo, il ricordo più indicato (ed utile).