[SQL CONFERENCE] Ottimizzare Xquery con indici XML

Sessione tenuta da Paolo. Si parla di XQuery e dai feedback dei partecipanti alla sessione l'argomento risulta essere piuttosto di nicchia. Io personalmente l'ho sfruttato solo in un caso in passato ma senza la necessità di usare anche gli indici sui campi di tipo xml quindi per me la sessione è stata un piacevole approfondimento della materia.

Alla fine della sessione sono stati presentati 2 esempi reali in cui la nuova feature è stata utilizzata in applicazioni reali:

  • per firmare digitalmente file xml salvati nel database grazie al SQLCLR
  • per eseguire la entity extention via plug-in

Il secondo esempio è sicuramente un esempio molto furbo di come eseguire personalizzazioni in un'applicazione via plug-in senza "customizzare" anche la struttura del database in cui sono persistite le informazioni.

Technorati tags: , , ,

[SQL CONFERENCE] Livelli di isolamento

Prima sessione pomeridiana.
Speaker Andrea che cerca, ci riesce, a svegliarci con un esempio "molto interessante" che evidenzia come sia importate una piena comprensione della materia trattata.
Piccola nota: nel dietro le quinte l'esempio proposto da Andrea già aveva catturato l'attenzione degli altri speaker a tal punto che Stefano Stefani, membro del team di sviluppo di SQL Server e guest star della confernza, assiste alla sessione ed alla fine interviene attivamente con delle pillole che possono venire solo da chi come lui in questi ultimi anni ha vissuto di "pane e SQL Server".

Tornando al contenuto della sessione, Andrea ha cercato di portare esempi in cui il comporatamento di SQL Server potrebbe non risultare il comportamento desiderato. Nozioni che sicuramente dovrebbero essere ben fissate nella mente di ogni sviluppatore che accede ad un database con un numero elevato di connessioni maggiore a 1 e quindi gestire in maniera adeguata eventuali accessi concorrenti alle stesse informazioni (ps. anche applicazioni mono-utente potrebbero rientrare in questa categoria).

Che altro dire, se pensate che il Read-Committed Isolation Level, ovvero il livello di isolamento di default in SQL Server, vi farà dormire sonni tranquilli beh dopo aver visto la sessione di oggi non ne sono più così certo!

[SQL CONFERENCE] Server Management Objects

Seconda sessione di Davide alla SqlConference 2007 questa volta dedicata a Server Management Objects, ovvero una serie di oggetti managed per eseguire operazioni di gestione e manutenzione sul nostri Server Sql (dalla versione 7 in poi)

Personalmente avendo già in passato usato la versione COM distruita con la versione 2000 di SqlServer, chiamata SQLDMO, già conoscevo a grandi linee il modello ad oggetti e le operazioni che si possono effettuare.

La mia attenzione in questa sessione é stata catturata da PowerShell, uno strumento per me nuovo con cui Davide ha mostrato come usare oggetti managed, in questo caso quelli di SMO, senza dover per forza realizzare un'applicazione compilata.

Una cosa da ricordare per chi vuole imparare ad usare SMO installare i samples di SQLServer 2005 che creano la cartella C:\Program Files\Microsoft SQL Server\90\Samples in cui troviamo numerosi esempi anche su SMO. 

[SQL CONFERENCE] Service Broker

Sessione di livello 400 tenuta da William Franchini su Service Broker.
Premetto che ho sempre avuto alcuni pregiudizzi nell'utilizzo del service broker semplicemente perchè usarlo vuole dire usare SQLServer 2005 non solo come database server ma anche come application server in cui inserire logica di business e la sessione mi ha confermato che questa è una scelta architettura quasi irreversibile.

Fatta questa premessa durante la sessione è stato presentato un caso reale in cui il service broker viene utlizzato in due diversi scenari:

  • operazioni asincrone
  • applicazioni distribuite

Il primo scenario mi ha convinto abbastanza, ovvero se uso SQLServer 2005 come back-end per la mia applicazione posso decidere di usare il broker per svolgere operazioni asincrone sul mio db. Ho già pensato ad un paio di possibili utilizzi nel progetto che sto sviluppando in questo periodo che userà SQLServer 2005 versione Express. Approfondirò per capire se mi semplifica la vita o meno.

Per quel che riguarda il secondo scenario penso che l'esempio sia stato affrontato un po' troppo velocemente e senza vedere la parte di codice WCF necessaria per far comunicare con il broker quindi magari lo riguarderò con più calma quando sarà possibile scaricare gli esempi.

Technorati tags: ,

[SQL CONFERENCE] SQLServer CE

Sessione di Roberto Brunetti che vuole essere una serie di best practices sull'accesso ai dati persistiti in SQLServer CE sia da dispobsitivi Mobile sia da dispositi Desktop. Tanti i consigli pratici sulle varie possibilità e sulle tecniche per realizzare un data access layer per SQLServer CE.

Per riassumerli brevemente usare (Base Table Cursor e Data Reader) e non usare (vedi. DataSet e DataTable). Fare chacing dei parametri se il dispositivo ha le caratteristiche adatte.

Interessante l'esempio di come creare un progetto desktop per fare debugging in modo "classico" ma su codice preso dalla soluzione mobile.

Frase topica della sessione:

Quando la RAM scarseggia ... la papera non galleggia.

Technorati tags: ,

[SQL CONFERENCE] SQLCLR

Arriva una sessione molto dev-oriented.

Tocca a Paolo Pialorsi addentrarsi nello sviscerare le catteristiche del SQLCLR per capire se siamo in un caso in cui il common language runtime interno al SQLServer 2005  è uno strumento che può esserci più utile dei comandi T-SQL.

IMHO ne vedo un'applicazione molto di nicchia (Regular Expression, Firma digitale , calcoli custom con logica molto complessa) ma in alcuni casi può essere una funzionalità veramente utile.

Molti gli esempi presentati sottolineando anche gli scenari in cui la scelta di utilizzare SQLCLR invece di comandi T-SQL è una scelta errata.

Insomma la sessione che mi è piaciuta di più nella giornata.

Technorati tags: ,

[SQL CONFERENCE] Database mirroring

Altra sessione tenuta da Luca Bianchi. Sessione dal taglio prettamente sistemistico essendo la funzionalità di database mirroring una funzionalità trasparente per applicazioni che utilizzano un provider ADO.NET 2.0 con stringa di connessione opportunamente configurata.

Maggiori dettagli li trovate in questo post di Andrea.

[SQL CONFERENCE] Analisi delle prestazioni e ottimizzazione

Come sempre ottima sessione di Davide che IMHO dovrebbe essere seguita da qualsiasi sviluppatore che lavora con SQLServer.
Il motivo è molto semplice: prima o poi tutti ci si trova davanti un SQLServer che non cammina come vorremmo ed abbiamo bisogno di capire perchè e fare ottimizzazione sulle query che vengono eseguite.

Gli argomenti trattati sono stati:

Come raccogliere i dati per capire lo stato di salute del mio database attraverso:

  • viste di sistema
  • perfomarce counter
  • tracing

e quindi come analizzare i dati tramite:

Bello l'esempio finale in cui una stored procedure realizzata con SQLCLR fa il parsing via Regular Expression del file di traccia realizzato con il SQLProfiler per avere l'elenco delle query più lente.

[SQL CONFERENCE] Novità del service pack 2

E' stata la prima volta che assistevo ad una sessione tenuta da Luca Bianchi, MVP di SQLServer, di cui in passato avevo già apprezzato alcuni articoli. Che dire, un ottimo speaker oltre che un ottimo articolista.

Sinceramente non mi aspettavo molto da questa sessione pensado fosse solo per dba ed invece sono stato piacevolmente sopreso dai contenuti. Nella sessione sono state affrontate con il dovuto dettaglio tecnico i seguenti argomenti:

  • logon trigger (anche se non impazzisco per i trigger questi possono essere molto utili se opportunamente utilizzati)
  • nuove istruzioni
    • ALTER LOGIN WITH PASSWORD HASHED
    • ALTER USER WITH LOGIN
  • Novità relative ai Maintainance Plan
  • Possibili problemi legati ai Clean up su base oraria
  • Nuovi Custom Report per l'analisi delle prestazioni
Technorati tags: ,

[SQL CONFERENCE] Blogging from the conference

Quest'anno avrò il piacere di partecipare a SQLCONFERENCE 2007

Se riesco vorrei annotare i miei commenti per ogni sessione a cui assisto.
Non avendo a disposizione una connessione durante l'evento preparerò i post con WLW e li pubblicherò non appena rientrato alla base.
Dall'agenda si preannuncia un evento con una track per dev/dba ed una track orientata alla Business Intelligence.
Visto che nel mio futuro per ora penso che mi terrò lontano dalla Business Intelligence la mia scelta ricade su sessioni per dev e dba.

Technorati tags: