Pagine

Visualizzazione post con etichetta Performance tuning. Mostra tutti i post
Visualizzazione post con etichetta Performance tuning. Mostra tutti i post

domenica 22 settembre 2013

T-SQL e caricamento dati differenziale..... E le performance ?

Immaginiamo questo scenario :
DBTarget è un DB OLAP che contiene una tabella TargetTable ed è utilizzato per effettuare Business Intelligence
DBSource è il DB OLTP che contiene una tabella SourceTable ed è utilizzato dai programmi aziendali di gestione.
Abbiamo la necessità di allineare il contenuto di TargetTable con quello di SourceTable utilizzando T-SQL.

sabato 14 settembre 2013

Script Rebuild o Reoganize ?

E' sempre necessario fare la rebuild di un indice o posso farne la reorganize ?
Per dirla in modo estrememente sintetico e semplificato, la Rebuild è molto efficiente  ma pesante , la Reorganize meno efficace ma più leggera...

domenica 21 luglio 2013

SQL Server 2014 CTP1 : Buffer Pool Extension

Le attività di read & write da e per i dischi sono le più pesanti che un RDBMS deve sostenere.
La Buffer Pool Extension di SQL 2014 alleggerisce il carico di I/O mantenendo elevato il throughput dei dischi.

martedì 5 marzo 2013

Sql Server 2012 : Extended Events. Cosa Sono ?

RIP SQL server Profiler.. !?!?!?!?!?!?!?! Eh ?!?!?!?! Ma come !?!?!?!??!
Ebbene si, dopo anni di onoratissimo servizio anche per Sql Server Profiler è giunta l'ora della meritata pensione...
Ma chi lo sostituirà !?!?! Gli Extended Events !!!
Gli Extended Events sono stati introdotti sin dall'edizione 2008 ma il loro utilizzo era un tantino macchinoso dato che nel Management studio 2008 non era presente nessun tool di configurazione e a meno che non si installasse questo Addin la configurazione doveva essere implementata via T-SQL.

giovedì 7 febbraio 2013

SQL 2012, IN_ROW_DATA, ROW_OVERFLOW_DATA, LOB_DATA.... e le performace?

Nel post Data Type e performance abbiamo visto che la scelta del tipo di dato è fondamentale per ottenere un Db performante.
Per i tipi dato con lunghezza a discrezione dell'utente, come per esempio i varchar, varbinary etc... è necessaria una maggiore attenzione.

I dati sono allocati in Data Pages dalla dimensione di 8K, quindi, in teoria, la lunghezza massima di un record inseribile in una data page è di 8kb (Per la precisione, tolti alcuni byte di sistema, a noi ne restano disponibili 8060).
Ma cosa accade se la somma delle dimensioni dei campi contenuti in una tabella supera la soglia fatidica ?

giovedì 6 dicembre 2012

SQL Server 2012 : Configurare il Resource Governor

Il Resource Governor è stato introdotto dall'edizione di SQL 2008, ma non mi pare sia molto utilizzato..... In poche parole vi consente di definire il limite di utilizzo della cpu e della memoria per i login e le applicazioni che si connettono a SQL server.

domenica 25 novembre 2012

SQL Server 2012: Column Store Index & Query Performance

Una delle novità di SQL Server 2012 è quella dei ColumnStore Index.
Come dice il nome, questo nuovo tipo di indici, invece di contenere righe, contiene i valori delle colonne. Ogni colonna compresa nell'indice ha una propria struttura di allocazione che consente al DB di implementare operazioni di raggruppamento in modo molto più efficiente rispetto agli indici tradizionali.

mercoledì 8 agosto 2012

Tabelle partizionate, indici, ricerche e manutenzione...

Gli indici partizionati/allineati sono estremamente utili quando dobbiamo fare ricerche nei dati di tabelle partizionate ma potrebbero essere un collo di bottiglia per le performance quando non sono creati correttamente. Qui un breve post sulla struttura degli indici in tabelle partizionate.

venerdì 27 luglio 2012

SQL Server 2012: Piano d'esecuzione non ottimale

Perchè una query apparentemente ottimizzata non dovrebbe rivelarsi tale? Perchè il query optimizer, che dovrebbe sempre trovare la strada migliore per evadere le nostre query, dovrebbe scegliere un piano d'esecuzione non ottimale se non scadente?

lunedì 12 marzo 2012

Come Transaction Log Growth e Virtual Logs impattano sulle Performance ?

Il Transaction Log è un file che molto spesso, quando si pensa alle performance, viene messo nel dimenticatoio.
Se riuscissimo a "gestire" il T-Log in modo ottimale, ed è possibile, potremmo migliorare senza alcuno sforzo le performance del nostro DB.

mercoledì 22 febbraio 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....

sabato 18 febbraio 2012

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 ?