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
.NET Conference Italia 2024
Recuperare App Service cancellati su Azure
Gestione file Javascript in Blazor con .NET 9
Centralizzare gli endpoint AI Foundry con Azure API Management
Anonimizzare i dati sensibili nei log di Azure Front Door
Selettore CSS :has() e i suoi casi d'uso avanzati
Rendere le variabili read-only in una pipeline di Azure DevOps
Testare il failover sulle region in Azure Storage
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Creare una libreria CSS universale - Rotazione degli elementi
I più letti di oggi
- Gestione ciclo di vita in .NET Aspire
- Sfruttare i nuovi overload di TimeSpan.From* per creare timespan usando numeri interi
- .NET Conference Italia 2024 - Milano
- Gestione CSS in Blazor con .NET 9
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!