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
Utilizzare HiLo per ottimizzare le insert in un database con Entity Framework
Applicare il versioning ai nostri endpoint ASP.NET Core Minimal API
Eseguire attività pianificate con Azure Container Jobs
Utilizzare la session affinity con Azure Container Apps
Gestire domini wildcard in Azure Container Apps
Utilizzare database e servizi con gli add-on di Container App
Utilizzare Model as a Service su Microsoft Azure
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Implementare il throttling in ASP.NET Core
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Inizializzare i container in Azure Container Apps
Eseguire query verso tipi non mappati in Entity Framework Core
I più letti di oggi
- C# 4
- Spaziatura tra i caratteri in Silverlight 5
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Segui in tempo reale il TechEd 2004
- da oggi è possibile fare login velocemente con LinkedIn e Google. a questi si aggiunge il supporto già attivo per Facebook, Twitter, Microsoft Account, Windows Hello e OpenID, per darvi sempre più possibilità di accedere semplicemente alla nostra community! #aspitalia
- Migrare una service connection a workload identity federation in Azure DevOps
- Evitare postback multipli in un UpdatePanel