Publications

FILESTREAM Attribute

Sergio Govoni

Tra le numerose novità introdotte con SQL Server 2008 troviamo anche il nuovo attributo FILESTREAM che integra l’intelligenza del query processor di SQL Server con l’immediatezza del file system per la memorizzazione di file di grandi dimensioni.

Quante volte ci siamo chiesti dove fosse meglio memorizzare file di grandi dimensioni, come ad esempio file video, multimediali o semplicemente documenti nei formati Microsoft Office. Fondamentalmente due le possibili soluzioni: nel file system oppure all’interno del DB, in colonne di tipo BLOB (Binary Large Object). Da qui l’analisi dei vantaggi e degli svantaggi di ognuna delle due soluzioni, ma in entrambi i casi, comunque, abbiamo dovuto accettare gli svantaggi della soluzione scelta. Probabilmente, il più delle volte abbiamo scelto di tenere fuori dal DB i dati non strutturati per evitare ad esempio file di backup di dimensioni elevate, a discapito però della semplicità di gestione e accettando limitazioni nelle funzionalità di flusso.

Table-Valued Parameters in Action

Sergio Govoni

SQL Server 2008 recepisce una richiesta che gli sviluppatori avevano inoltrato a Microsoft già da parecchio tempo, ossia la possibilità di passare a stored procedure e function definite dall’utente, parametri di tipo tabella ovvero Table-Valued Parameters (TVPs).

Nelle precedenti versioni di SQL Server, la necessità di passare una struttura dati come parametro ad una stored procedure o ad una function veniva spesso risolta con un workaround che consiste nel passare parametri di tipo XML o Comma Separeted String. Queste soluzioni, tipicamente, richiedono però la stesura di parecchio codice T-SQL che difficilmente potrà scalare in modo ottimizzato in funzione della quantità dei dati trattati.

Free ebook: Introducing Microsoft SQL Server 2008 R2

Sergio Govoni

In occasione del PASS European Conference 2010, che si sta svolgendo proprio in questi giorni a Neuss in Germania, verrà ufficialmente lanciata la versione R2 di SQL Server 2008.

Sul blog MSDN è disponibile, per il download gratuito, l’ebook “Introducing Microsoft SQL Server 2008 R2” [link].

Lo scopo di questo libro introduttivo è quello di illustrare le nuove caratteristiche della versione 2 (R2) di SQL Server 2008.

24 Hours of PASS Is Back!

Sergio Govoni

Visto il successo riscontrato nella precedente edizione, anche quest’anno, la più importante conferenza mondiale su SQL Server e la Business Intelligence – PASS Summit 2010 –  verrà anticipata dall’evento on line 24 Hours of PASS.

Si tratta del più lungo webcast gratuito su SQL Server & BI erogato on line, che in questa edizione avrà un focus particolare sulla versione R2 di SQL Server 2008.

MERGE Statements in Action

Sergio Govoni

SQL Server 2008 introduce il supporto al comando MERGE. Questo comando permette di specificare una tabella sorgente (source) ed una tabella destinazione (target o destination), modificando il contenuto della tabella destinazione con i dati della tabella sorgente.

Potranno essere eseguite operazioni DML multiple (INSERT/UPDATE/DELETE) in funzione delle condizioni logiche specificate nelle clausole del comando. SQL Server implementa tutte le caratteristiche del comando MERGE standard ANSI e aggiunge alcune importanti estensioni disponibili solo nel linguaggio T-SQL.

Bill Of Materials problem (part three: using HIERARCHYID data type)

Sergio Govoni

Nell’articolo Recursive CTE and Bill Of Materials problem abbiamo largamente parlato delle tecnologie che SQL Server mette a disposizione per ottenere l’esplosione scalare di una distinta materiali, ossia per risolvere il problema noto come “The Bill Of Materials problem”.

Successivamente, nell’articolo Recursive CTEs and Bill Of Materials problem (part two: cyclic references) , per la stessa distinta materiali, abbiamo illustrato una soluzione in grado d’individuare riferimenti ciclici (nei dati) con prestazioni ragionevoli. Per rilevare i riferimenti ciclici abbiamo utilizzato una CTE ricorsiva in cui viene calcolato dinamicamente il path di ogni elemento. Nella SELECT ricorsiva abbiamo utilizzato il predicato LIKE per verificare che l’ID del sotto insieme (elemento) che si sta elaborando non sia già contenuto nel path composto con i riferimenti univoci (IDs) dei sotto insiemi (elementi) a livello superiore.