Nell'ambito Microsoft, quando vogliamo utilizzare un database relazionale pensiamo subito a SQL Server. La versione cloud, di nome SQL Database, è completamente gestita e ci fa dimenticare di tutte le problematiche di gestione, backup e aggiornamento.
Tutto è automatico ad eccezione di ciò che compete a noi, cioè il disegno del database e l'ottimizzazione e il mantenimento degli indici. E' un lavoro delicato che può stravolgere completamente le prestazioni delle query che andiamo ad eseguire, perciò non va mai trascurato. Questo lavoro va fatto in fase di disegno del database, ma va anche regolarmente effettuato a seconda dell'utilizzo dello stesso nel tempo: nuove query o maggiori quantità di dati possono far emergere l'esigenza di nuovi indici o piani di esecuzione.
SQL Database ci viene in aiuto in questo, attraverso le sezioni Performance overview e Query Performance Insight, dove vengono elencate le query più utilizzate e onerose. Non solo, attraverso la sezione Performance recommendation ci vengono proposti dei suggerimenti sulle query che possono essere migliorate, perché troppo lente. Ci vengono proposti indici da attivare e con un click applicarli oppure tornare alla situazione precedente, fornendo la storia di tutto quello che abbiamo ottimizzato.

Ma come detto le cose cambiano nel tempo e non è detto che un nuovo indice possa portare effettivamente a benefici. Tramite la sezione Automatic tuning, possiamo andare ad attivare delle opzioni per automatizzare il processo di valutazione degli indici e dei piani di esecuzione.

Attivando la ricreazione del piano e la gestione degli indici, a livello di database o di server, il motore valuta la creazione dei nuovi indici e valuta nel tempo i loro benefici. Se sono validi, li mantiene, altrimenti li cancella, valutando delle alternative. Nella schermata delle raccomandazioni possiamo vedere lo storico di queste valutazioni, come visto nella prima schermata.
Sebbene possa essere normale diffidare da sistemi automatici di tuning, questo motore è molto valido e porta con sé tutta la conoscenza che Microsoft ha del proprio database relazionale, evolvendolo nel tempo in modo trasparente, il tutto senza costi aggiuntivi.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ciclo di vita risorse con .NET Aspire
Gestire il routing HTTP in Azure Container App
Centralizzare gli endpoint AI Foundry con Azure API Management
Raggruppare risorse in .NET Aspire
Abilitare il rolling update su Azure Functions flex consumption
Usare la parola chiave field per semplificare la scrittura di proprietà in C#
Gestione degli eventi nei Web component HTML
Utilizzare WebJobs su Linux con Azure App Service
Ospitare n8n su Azure App Service
Gestire progetti NPM in .NET Aspire
Supporto nativo a JSON in SQL Server 2025




