SQL server 2012 ha introdotto molte nuove features rispetto alla versione precedente.
Nei post SQL Server 2012 FileTable e La paginazione dei dati in SQL Server 2008 e con la CTP3 di denali ho brevemente descritto due nuove funzionalità estremamente interessanti della nuova versione..... Ovviamente le "innovazioni" non si fermano qui.
Vediamo allora altre nuove funzionalità di SQL Server 2012.
domenica 26 febbraio 2012
mercoledì 22 febbraio 2012
Delete, truncate e data pages
Delete o truncate ?
Quando abbiamo la necessità di rimuovere il contenuto della nostra tabella quale istruzione è più indicata ?
Ovviamente se abbiamo la necessità di rimuovere solo un insieme ristretto di righe è d'obbligo usare l'istruzione Delete,
mentre se è l'intero set di righe che vogliamo eliminare allora la truncate potrebbe fare al caso nostro....
Ma se elimino l'intero set di righe vengono eliminate anche le pagine che le contengono ?
Quando abbiamo la necessità di rimuovere il contenuto della nostra tabella quale istruzione è più indicata ?
Ovviamente se abbiamo la necessità di rimuovere solo un insieme ristretto di righe è d'obbligo usare l'istruzione Delete,
mentre se è l'intero set di righe che vogliamo eliminare allora la truncate potrebbe fare al caso nostro....
Ma se elimino l'intero set di righe vengono eliminate anche le pagine che le contengono ?
Etichette:
Sql Server 2008 R2,
SQL Server 2012
Data Type e performance
La scelta del tipo di dato per le colonne delle tabelle nei database è fondamentale per avere delle performance sempre all'altezza delle aspettative degli utenti.
Sottovalutare questo aspetto potrebbe avere conseguenze nefaste per le nostre applicazioni che reperiscono i dati grazie a SQL server.
Ogni tipo di dato, sia a lunghezza fissa che a lunghezza variabile, ha una propria allocazione in termini di byte scritti sul disco.
Le righe contenute nelle nostre tabelle vengono archiviate in strutture di 8K chiamate data page ed ogni riga ( salvo casi particolari ) dovrà essere contenuta interamente in una singola data page.
La quantità di righe che riusciamo a contenere in una singola data page determina il numero di data page che costituiranno la nostra tabella.
All'aumentare delle data page aumenteranno le operazioni di I/O per evadere le nostre richieste e di conseguenza potrebbero calare drasticamente le performance....
Sottovalutare questo aspetto potrebbe avere conseguenze nefaste per le nostre applicazioni che reperiscono i dati grazie a SQL server.
Ogni tipo di dato, sia a lunghezza fissa che a lunghezza variabile, ha una propria allocazione in termini di byte scritti sul disco.
Le righe contenute nelle nostre tabelle vengono archiviate in strutture di 8K chiamate data page ed ogni riga ( salvo casi particolari ) dovrà essere contenuta interamente in una singola data page.
La quantità di righe che riusciamo a contenere in una singola data page determina il numero di data page che costituiranno la nostra tabella.
All'aumentare delle data page aumenteranno le operazioni di I/O per evadere le nostre richieste e di conseguenza potrebbero calare drasticamente le performance....
lunedì 20 febbraio 2012
Pivoting Dinamico
Immaginate d'avere una tabella e di volerne effettuare il pivot.
L'istruzione Pivot richiede esplicitamente quali valori debbano essere trasformati in colonne, per esempio :
Select * from MyTable
Pivot(Aggregate_fn(Fields0) for Fields1 in (Values List)) Pvt
Immaginate di non conoscere a priori quali valori debbano essere orizzontalizzati con la pivot perchè il contenuto della tabella è
estremamente variabile. Come fare ?
L'istruzione Pivot richiede esplicitamente quali valori debbano essere trasformati in colonne, per esempio :
Select * from MyTable
Pivot(Aggregate_fn(Fields0) for Fields1 in (Values List)) Pvt
Immaginate di non conoscere a priori quali valori debbano essere orizzontalizzati con la pivot perchè il contenuto della tabella è
estremamente variabile. Come fare ?
Etichette:
SQL Server 2005,
Sql Server 2008,
Sql Server 2008 R2,
SQL Server 2012
domenica 19 febbraio 2012
Ricerca in Campi XML
Immaginate un magazzino di spedizionieri che necessita di una descrizione dettagliata di ogni prodotto conservato al suo interno.
Nei suoi scaffali si protrebbero trovare prodotti come Sci, Televisioni, Automobili, Pc etc.... Come fare allora per gestire anche nel DB
dei dati così differenti tra loro per struttura ?
Nei suoi scaffali si protrebbero trovare prodotti come Sci, Televisioni, Automobili, Pc etc.... Come fare allora per gestire anche nel DB
dei dati così differenti tra loro per struttura ?
Etichette:
SQL Server 2005,
Sql Server 2008,
Sql Server 2008 R2,
SQL Server 2012
sabato 18 febbraio 2012
Community Days 2012
Grazie a tutti i partecipanti della sessione "ITPRO06 – SQL Server to the Max" che ho tenuto ai CDays giovedi 16/02/2012 in Microsoft.....
Mi sono divertito !!!
Grazie e alla prossima (molto presto ;-))
P.S. A breve saranno disponibili dal sito dei community days le slide e le demo della mia sessione SQL Server to the Max !!
Ma prima un po di foto !!! (Gentilmente scattate da Riccardo )
Mi sono divertito !!!
Grazie e alla prossima (molto presto ;-))
P.S. A breve saranno disponibili dal sito dei community days le slide e le demo della mia sessione SQL Server to the Max !!
Ma prima un po di foto !!! (Gentilmente scattate da Riccardo )
Etichette:
Conferenze It
Impatto del Page Split dei livelli intermedi sulle prestazioni
Cosa è il page split ? E' un meccanismo di sincronizzazione grazie al quale SQL Server mantiene aggiornato il contenuto dei nostri indici con quanto è realmente contenuto nella tabella. Per fortuna esiste, ma se si verifica troppo frequentemente potrebbe mettere a dura prova le performance del nostro DB.
Perchè si verifica ?
Perchè si verifica ?
giovedì 9 febbraio 2012
SQL Server 2008: Pensare Set based
Pensare set based è il metodo più efficiente per risolvere problematiche complesse mantenendo le performance del nostro DB a livelli elevati. Non sempre è semplice pensare set based perché la nostra mente è orientata al ragionamento row based che però ha molte controindicazioni.
Etichette:
Common table expression,
Set Based,
Sql Server 2008
lunedì 19 dicembre 2011
Happy SQL Christmas !!!!
E' natale e siamo tutti più buoni.....
Allora mi sono detto.... Perchè non rendere anche SQL Server più buono ?
Ma come ?
bhè.... Facendogli disegnare un bell'albero di Natale!!!
Eh ?!?!? Si si !!! Proprio un albero di Natale....
Ma come fai ? Con i dati Spaziali (come le alabarde di Goldrake !!)
Etichette:
Sql Server 2008
mercoledì 23 novembre 2011
SQL Server 2012 FileTable
Ciao a tutti !!!
In diretta dalla WPC2011 ecco a voi un piccolo esempio di cosa si potrebbe implementare con la nuova edizione di SQL Server 2012.
In SQL Server 2008 e 2008R2 è stato introdotto il concetto di Filestream che consente di coniugare la potenza dell'Engine di SQL server nella ricerche sui dati e la flessibilità del Filesystem nella gestione dei file. Sull'infrastruttura del filestream in SQL server 2012 hanno implementato un nuovo tipo di tabelle definite FileTable. Queste tabelle sono direttamente "connesse" alla cartella a loro associata e riescono ad interagire con le subfolder ed i file in esse contenuti.
Vediamo come crearle.
Passo 1:
Se ancora non l'abbiamo fatto è necessario abilitare il filestream dell'istanza ad un livello Full_access :
In diretta dalla WPC2011 ecco a voi un piccolo esempio di cosa si potrebbe implementare con la nuova edizione di SQL Server 2012.
In SQL Server 2008 e 2008R2 è stato introdotto il concetto di Filestream che consente di coniugare la potenza dell'Engine di SQL server nella ricerche sui dati e la flessibilità del Filesystem nella gestione dei file. Sull'infrastruttura del filestream in SQL server 2012 hanno implementato un nuovo tipo di tabelle definite FileTable. Queste tabelle sono direttamente "connesse" alla cartella a loro associata e riescono ad interagire con le subfolder ed i file in esse contenuti.
Vediamo come crearle.
Passo 1:
Se ancora non l'abbiamo fatto è necessario abilitare il filestream dell'istanza ad un livello Full_access :
Use Master Go exec sp_configure Filestream_Access_level, 2 reconfigure GO
Etichette:
SQL Server 2012
Iscriviti a:
Post (Atom)