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
What's new in Azure Functions and Extensions
Utilizzare gRPC su App Service di Azure
Migliora le tue soluzioni ASP.NET Core con Azure OpenAI
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Potenziare Azure AI Search con la ricerca vettoriale
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Utilizzare Tailwind CSS all'interno di React: primi componenti
Implementare l'infinite scroll con QuickGrid in Blazor Server
Utilizzare Copilot con Azure Cosmos DB
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Miglioramenti agli screen reader e al contrasto in Angular