Performance

Webinar: Distributed Cache with SQL Server 2019

Continuano i webinar gratuiti dello User Group Italiano di SQL Server, questo mese parleremo di come sia possibile implementare un key-value store ad alte prestazioni sfruttando la tecnologia In-Memory in SQL Server 2019. Nel case-study verranno presentate soluzioni reali implementate in ambienti di produzione business critical ad alta concorrenza. Ovviamente non mancheranno le demo!

Il webinar si terrà giovedì 28 gennaio 2021 alle ore 14:00, durerà un’ora e sarà tenuto da Gabriele Franco. Gabriele ricopre il ruolo di Database Administrator e Business Intelligence Specialist specializzato nella progettazione, realizzazione, ottimizzazione e migrazione di infrastrutture database SQL Server di grandi dimensioni, business critical e con altissima concorrenza. Ha iniziato a svolgere questo mestiere dal 2013 ed oggi lavora con le ultimissime tecnologie del mondo Microsoft sia su soluzioni on-premises che cloud.

1nn0va after hour: Mastering tempdb

Sergio Govoni

Il prossimo webinar della serie 1nn0va After Hour è programmato per Martedì 29 Dicembre 2020 alle ore 21:00.

Danilo Dominici (@danilo_dominici) ci spiegherà come gestire al meglio uno dei più importanti database di sistema dell’istanza SQL Server, il tempdb! Verranno trattati temi legati al dimensionamento, alle performance e al posizionamento fisico dei file dati e log di questo database di sistema!

Non mancate all’appuntamento Mastering TempDB!

Il webinar è gratuito, per effettuare la registrazione e ricevere il link per partecipare, puntate il vostro browser qui.

PASSGIVC – Monitoraggio di Reporting Services

Sergio Govoni

Il prossimo webinar del PASS Italian Virtual Chapter è programmato per mercoledì 30 Gennaio 2019 alle ore 18:00.

Lorenzo Vercellati di SolidQ (@supergimi) spiegherà come fare il Monitoraggio di Reporting Services. Per effettuare la registrazione, puntate il vostro browser qui.

Questo è l’abstract del webinar:

Quando si realizza una piattaforma di reportistica, il lavoro non si esaurisce mai con la pubblicazione dei report. Una volta pubblicati infatti, poterne monitorare l’effettivo utilizzo e le performance rimane una risorsa fondamentale per garantire efficienza e fruibilità del proprio sistema di reportistica. Sapere chi utilizza quali report, come e quando, permette di mantenere in efficienza quanto implementato migliorando il servizio all’utente e riducendo i costi di manutenzione dei reports. A maggior ragione oggi che le numerose novità, dall’integrazione dei mobile reports a quella con Power BI, hanno decisamente rilanciato le quotazioni di SSRS. In questa sessione analizzeremo la struttura del database di Reporting Services alla ricerca degli usage e performance counter a disposizione, utili per realizzare una vera e propria dashboard di monitoraggio. Scopriremo inoltre i diversi livelli di profondità delle informazioni in base alla versione, compresa Power BI Rerport Server.

PASSGIVC - TSQL Advanced for Grouping and Windowing

Il prossimo webinar del PASS Italian Virtual Chapter è programmato per mercoledì 21 marzo 2018 alle ore 18:00.

Andrea Martorana Tusa (@bruco441) ci spiegherà come utilizzare il linguaggio T-SQL in modo avanzato per effettuare operazioni di grouping e utilizzare le funzioni di windowing, nel webinar dal titolo “T-SQL advanced: Grouping and Windowing”.

Questo è l’abstract:

Lo scopo di questa sessione è esplorare le possibilità offerte del linguaggio T-SQL in termini di aggregazione e calcolo dei dati. C’è molto di più della sola clausola GROUP BY! Con le funzioni di aggregazione e di ranking, si possono calcolare direttamente nella stessa query, totali parziali, totali complessivi, si possono trovare intervalli in serie, selezionare l’ultimo valore non-null, ecc. Le funzioni di windowing si applicano invece ad un set di righe delimitato dalla clausola OVER (una “window” appunto). Le funzioni di windowing non effettuano l’aggregazione del gruppo a livello di riga e non nascondono i dettagli. Così è possibile mostrare dei dati di dettaglio e dei totali nella stessa query. La sessione è basata principalmente su un copioso numero di demo, che consentiranno di esplicitare al meglio i concetti introdotti. Per ogni soluzione, verrà anche valutato l’impatto in termini di performance.

Conversioni implicite: La plan cache ci svela quante sono e dove avvengono!

Nell’articolo Conversioni implicite: cosa sono e che impatto hanno sulle nostre query, Luca Bruni (@mrg3d) ci ha parlato delle conversioni implicite che avvengono, a nostra insaputa, all’interno dell’Engine di SQL Server. Tali conversioni, possono costringere il Query Optimizer ad accedere alle tabelle con operazioni di scansione (Table Scan, Index Scan) in alternativa alle più efficienti operazioni di Seek (Index Seek), e quando una parte significativa del carico di lavoro è interessata da conversioni implicite, le performance degradano visibilmente!

Conversioni implicite: cosa sono e che impatto hanno sulle nostre query

Come credo alla maggior parte di voi, spesso, anche a me capita di dover mantenere codice scritto da qualcun altro. Uno degli aspetti che (ri)trovo con una certa frequenza è che, spesso, non prestiamo attenzione a come scriviamo le nostre query, sottovalutando l’impatto che queste possono avere sul nostro sistema.

Proprio recentemente mi sono imbattuto in una serie di batch (dalle semplici query a complesse procedure) dove non si era prestata la dovuta attenzione all’utilizzo dei tipi dato (ad esempio nella definizione di variabili e costanti, ma anche nelle colonne delle stesse tabelle), andando di fatto a creare qualche inconveniente, oltre che di mera natura estetica (e quindi di qualità del codice), anche (e soprattutto) di natura prestazionale. Buona parte di questi problemi era dovuta all’utilizzo frequente delle funzioni di conversione CAST e CONVERT (dovuti a probabili errori di modellazione delle tabelle come ad esempio stessa colonna in due tabelle differenti ma con differente tipo dato), ma la parte più critica e rilevante era dovuta  alla presenza di una miriade di conversioni implicite.

Live Query Statistics anche con SQL Server 2014 SP1

Davide Mauri

Una delle (tante) novità introdotte in SQL Server 2016 sono le Live Statistics che permettono di vedere lo stato di esecuzione di una query in tempo reale. Oltre che essere visivamente molto accattivante, la funzionalità è utile per capire quale parte di una query complessa deve essere ottimizzata.

Live Query Statistics

Quello che con tutti sanno è che la funzionalità è basata su una feature inserita già dalla SP1 di SQL Server 2014, la DMV

Trigger su SQL Server: Utili o dannosi?

Sergio Govoni

I trigger sono spesso motivo di discordia tra sviluppatori e DBA, tra chi personalizza una soluzione standard e chi la fornisce, tra clienti e software vendor. Sono spesso i primi imputati quando le performance dell’istanza SQL Server o del database degradano. Sembrano facili da scrivere, ma scrivere trigger efficienti non è affatto semplice e quando la loro complessità aumenta, talvolta possono presentare effetti collaterali in grado di confondere persino l’autore.

DiskSpd, tool per misurare le performance dell'I/O

Davide Mauri

Una delle risorse più importanti per un database è l’I/O, ed è quindi bene conoscere i limiti del sistema di storage scelto, al fino di poter capire se è adatto allo scopo, se è sottodimensionato oppure se va benissimo per l’utilizzo che dobbiamo fare, andando quindi anche ad avere una idea delle performance che il nostro SQL Server (o Analysis Services) potranno regalarci.

In poche parole: testare e stabilire una baseline è fondamentale.

SQL Server Hardware

Sergio Govoni

Dal sito Red-Gate è possibile scaricare gratuitamente l’eBook: SQL Server Hardware.

In questo libro, Glenn Berry (@GlennAlanBerry) spiega come prendere decisioni intelligenti circa l’hardware da adottare per un database server che dovrà ospitare un’istanza SQL Server.

La copia cartacea è ovviamente acquistabile anche su Amazon.