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
Criptare la comunicazione con mTLS in Azure Container Apps
Generare un hash con SHA-3 in .NET
Disabilitare automaticamente un workflow di GitHub (parte 2)
Eseguire una query su SQL Azure tramite un workflow di GitHub
Sostituire la GitHub Action di login su private registry
Ottimizzazione dei block template in Angular 17
Filtering sulle colonne in una QuickGrid di Blazor
Cancellare una run di un workflow di GitHub
Gestione dei nomi con le regole @layer in CSS
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Applicare un filtro per recuperare alcune issue di GitHub
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
I più letti di oggi
- Screencast 'Primi passi con Windows Workflow Foundation'
- .NET Conference Italia 2021 - Online
- Venite a trovarci a SMAU, dal 2 al 6 ottobre!
- Validazione dell'input in ASP.NET MVC 2
- Ignorare gli errori negli script
- Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
- Inviare un'e-mail con ASP.NET