Ottimizzazione automatica nel database SQL di AzureAutomatic tuning in Azure SQL Database

L'ottimizzazione automatica del database SQL di Azure garantisce massime prestazioni e carichi di lavoro stabili grazie al miglioramento continuo delle prestazioni basato sull'intelligenza artificiale e sull'apprendimento automatico.Azure SQL Database Automatic tuning provides peak performance and stable workloads through continuous performance tuning based on AI and machine learning.

L'ottimizzazione automatica è un servizio per prestazioni intelligenti completamente gestito che usa l'intelligenza artificiale incorporata per monitorare le query eseguite su un database e ne migliora automaticamente le prestazioni.Automatic tuning is a fully managed intelligent performance service that uses built-in intelligence to continuously monitor queries executed on a database, and it automatically improves their performance. Questo risultato viene raggiunto adattando in modo dinamico il database ai carichi di lavoro modificabili e applicando le raccomandazioni di ottimizzazione.This is achieved through dynamically adapting database to the changing workloads and applying tuning recommendations. L'ottimizzazione automatica apprende orizzontalmente da tutti i database in Azure grazie all'intelligenza artificiale e migliora in modo dinamico le azioni di ottimizzazione.Automatic tuning learns horizontally from all databases on Azure through AI and it dynamically improves its tuning actions. Quanto più a lungo un database SQL di Azure viene eseguito con l'ottimizzazione automatica attivata, tanto migliori sono le prestazioni.The longer an Azure SQL Database runs with automatic tuning on, the better it performs.

L'ottimizzazione automatica del database SQL di Azure potrebbe essere una delle funzionalità più importanti che è possibile abilitare per garantire carichi di lavoro del database con prestazioni ottimali e stabili.Azure SQL Database Automatic tuning might be one of the most important features that you can enable to provide stable and peak performing database workloads.

Vantaggi dell'ottimizzazione automaticaWhat can Automatic Tuning do for you?

  • Ottimizzazione automatizzata delle prestazioni per i database SQL di AzureAutomated performance tuning of Azure SQL databases
  • Verifica automatizzata dei miglioramenti delle prestazioniAutomated verification of performance gains
  • Ripristino dello stato precedente automatizzato e correzione automaticaAutomated rollback and self-correction
  • Cronologia ottimizzazioneTuning history
  • Ottimizzazione degli script di azione T-SQL per le distribuzioni manualiTuning action T-SQL scripts for manual deployments
  • Monitoraggio delle prestazioni dei carichi di lavoro proattivoProactive workload performance monitoring
  • Capacità di aumentare il numero di istanze in centinaia di migliaia di databaseScale out capability on hundreds of thousands of databases
  • Impatto positivo sulle risorse DevOps e sul costo totale di proprietàPositive impact to DevOps resources and the total cost of ownership

Sicura, affidabile e collaudataSafe, Reliable, and Proven

Le operazioni di ottimizzazione applicate ai database SQL di Azure sono assolutamente sicure per le prestazioni dei carichi di lavoro più elevati.Tuning operations applied to Azure SQL databases are fully safe for the performance of your most intense workloads. Il sistema è stato progettato in modo che non interferisca con i carichi di lavoro degli utenti.The system has been designed with care not to interfere with the user workloads. Le raccomandazioni di ottimizzazione automatizzata vengono applicate solo in caso di sottoutilizzo.Automated tuning recommendations are applied only at the times of a low utilization. Il sistema può anche disabilitare temporaneamente le operazioni di ottimizzazione per proteggere le prestazioni dei carichi di lavoro.The system can also temporarily disable automatic tuning operations to protect the workload performance. In tal caso, nel portale di Azure verrà visualizzato il messaggio "Disabled by the system" (Disabilitate dal sistema).In such case, “Disabled by the system” message will be shown in Azure portal. L'ottimizzazione automatica interessa i carichi di lavoro con la priorità delle risorse più elevata.Automatic tuning regards workloads with the highest resource priority.

I meccanismi di ottimizzazione automatica sono ormai avanzati e sono stati perfezionati in diversi milioni di database in esecuzione su Azure.Automatic tuning mechanisms are mature and have been perfected on several million databases running on Azure. Le operazioni di ottimizzazione automatizzata applicate vengono verificate automaticamente per assicurare che sussista un miglioramento delle prestazioni dei carichi di lavoro.Automated tuning operations applied are verified automatically to ensure there is a positive improvement to the workload performance. Le raccomandazioni per le prestazioni peggiorate vengono rilevate in modo dinamico e ripristinate tempestivamente.Regressed performance recommendations are dynamically detected and promptly reverted. La cronologia di ottimizzazione registrata offre una chiara analisi dei miglioramenti apportati a ogni database SQL di Azure.Through the tuning history recorded, there exists a clear trace of tuning improvements made to each Azure SQL Database.

Come funziona l'ottimizzazione automatica

L'ottimizzazione automatica del database SQL di Azure condivide la logica principale con il motore di ottimizzazione automatica di SQL Server.Azure SQL Database Automatic tuning is sharing its core logic with the SQL Server automatic tuning engine. Per altre informazioni tecniche sul meccanismo di intelligenza artificiale incorporata, vedere SQL Server automatic tuning (Ottimizzazione automatica di SQL Server).For additional technical information on the built-in intelligence mechanism, see SQL Server automatic tuning.

Usare l'ottimizzazione automaticaUse Automatic tuning

L'ottimizzazione automatica deve essere abilitata nella sottoscrizione.Automatic tuning needs to be enabled on your subscription. Per abilitare l'ottimizzazione automatica usando il portale di Azure, vedere Abilitare l'ottimizzazione automatica.To enable automatic tuning using Azure portal, see Enable automatic tuning.

L'ottimizzazione automatica può funzionare in modo autonomo grazie all'applicazione automatica di raccomandazioni di ottimizzazione, inclusa la verifica automatizzata dei miglioramenti delle prestazioni.Automatic tuning can operate autonomously through automatically applying tuning recommendations, including automated verification of performance gains.

Per un maggiore controllo, è possibile disattivare l'applicazione automatica delle raccomandazioni di ottimizzazione che possono essere applicate manualmente tramite il portale di Azure.For more control, automatic application of tuning recommendations can be turned off, and tuning recommendations can be manually applied through Azure portal. È anche possibile usare la soluzione solo per visualizzare le raccomandazioni di ottimizzazione automatizzata e applicarle manualmente tramite gli script e gli strumenti preferiti.It is also possible to use the solution to view automated tuning recommendations only and manually apply them through scripts and tools of your choice.

Per una panoramica del funzionamento dell'ottimizzazione automatica e per gli scenari di utilizzo tipici, vedere il video incorporato:For an overview of how automatic tuning works and for typical usage scenarios, see the embedded video:

Opzioni di ottimizzazione automaticaAutomatic tuning options

Le opzioni di ottimizzazione automatica disponibili nel database SQL di Azure sono le seguenti:Automatic tuning options available in Azure SQL Database are:

Opzione di ottimizzazione automaticaAutomatic tuning option Supporto dei database singoli e in poolSingle database and pooled database support Supporto del database dell'istanzaInstance database support
Create index : identifica gli indici che possono migliorare le prestazioni del carico di lavoro, crea gli indici e verifica automaticamente che le prestazioni delle query siano migliorate.CREATE INDEX - Identifies indexes that may improve performance of your workload, creates indexes, and automatically verifies that performance of queries has improved. YesYes NoNo
Drop index : identifica gli indici ridondanti e duplicati al giorno, tranne gli indici univoci e gli indici che non sono stati usati per molto tempo (> 90 giorni).DROP INDEX - Identifies redundant and duplicate indexes daily, except for unique indexes, and indexes that were not used for a long time (>90 days). Si noti che questa opzione non è compatibile con le applicazioni che usano cambi di partizione e hint di indice.Please note that this option is not compatible with applications using partition switching and index hints. L'eliminazione degli indici inutilizzati non è supportata per i livelli di servizio Premium e business critical.Dropping unused indexes is not supported for Premium and Business Critical service tiers. YesYes NoNo
Forza ultimo piano valido (correzione automatica del piano): identifica le query SQL usando il piano di esecuzione più lento rispetto al piano corretto precedente e le query che usano l'ultimo piano valido noto anziché il piano regressione.FORCE LAST GOOD PLAN (automatic plan correction) - Identifies SQL queries using execution plan that is slower than the previous good plan, and queries using the last known good plan instead of the regressed plan. YesYes YesYes

L'ottimizzazione automatica identifica le opzioni CREATE INDEX (Crea indice), DROP INDEX (Elimina indice) e FORCE LAST GOOD PLAN (Forza piano valido più recente) che consentono di ottimizzare le prestazioni del database, di visualizzarle nel portale di Azure e di esporle tramite T-SQL e l'API REST.Automatic tuning identifies CREATE INDEX, DROP INDEX, and FORCE LAST GOOD PLAN recommendations that can optimize your database performance and shows them in Azure portal, and exposes them through T-SQL and REST API. Per altre informazioni sull'ultimo piano valido e sulla configurazione delle opzioni di ottimizzazione automatica tramite T-SQL, vedere ottimizzazione automatica introduce la correzione automatica del piano.To learn more about FORCE LAST GOOD PLAN and configuring automatic tuning options through T-SQL, see Automatic tuning introduces automatic plan correction.

È possibile applicare manualmente le opzioni di ottimizzazione usando il portale o è possibile consentirne l'applicazione autonoma da parte dell'ottimizzazione automatica.You can either manually apply tuning recommendations using the portal or you can let Automatic tuning autonomously apply tuning recommendations for you. I vantaggi di consentire al sistema di applicare in modo autonomo le opzioni di ottimizzazione consistono nella convalida automatica della presenza di un aumento delle prestazioni del carico di lavoro e, se non vengono rilevati miglioramenti significativi delle prestazioni, nel ripristino dello stato prima dell'applicazione delle opzioni di ottimizzazione.The benefits of letting the system autonomously apply tuning recommendations for you is that it automatically validates there exists a positive gain to the workload performance, and if there is no significant performance improvement detected, it will automatically revert the tuning recommendation. Si noti che, in caso di query interessate da opzioni di ottimizzazione che non vengono eseguite di frequente, la fase di convalida può richiedere fino a 72 ore per impostazione predefinita.Please note that in case of queries affected by tuning recommendations that are not executed frequently, the validation phase can take up to 72 hrs by design.

Se si applicano le indicazioni di ottimizzazione tramite T-SQL, la convalida automatica delle prestazioni e i meccanismi di inversione non sono disponibili.In case you are applying tuning recommendations through T-SQL, the automatic performance validation, and reversal mechanisms are not available. Le raccomandazioni applicate in questo modo rimarranno attive e visualizzate nell'elenco delle raccomandazioni per l'ottimizzazione per 24-48 ore.Recommendations applied in such way will remain active and shown in the list of tuning recommendations for 24-48 hrs. prima del ritiro automatico del sistema.before the system automatically withdraws them. Se si desidera rimuovere prima una raccomandazione, è possibile eliminarla dalla portale di Azure.If you would like to remove a recommendation sooner, you can discard it from Azure portal.

Le opzioni di ottimizzazione automatica possono essere abilitate o disabilitate in modo indipendente per ogni database, oppure possono essere configurate nei server di database SQL e applicate a ogni database che eredita le impostazioni dal server.Automatic tuning options can be independently enabled or disabled per database, or they can be configured on SQL Database servers and applied on every database that inherits settings from the server. I server di database SQL possono ereditare le impostazioni predefinite di Azure per le impostazioni di ottimizzazione automatica.SQL Database servers can inherit Azure defaults for Automatic tuning settings. Le impostazioni predefinite di Azure in questo momento sono FORCE_LAST_GOOD_PLAN (abilitata), CREATE_INDEX (abilitata) e DROP_INDEX (disabilitata).Azure defaults at this time are set to FORCE_LAST_GOOD_PLAN is enabled, CREATE_INDEX is enabled, and DROP_INDEX is disabled.

Il metodo consigliato per la configurazione dell'ottimizzazione automatica è quello che prevede la configurazione delle opzioni di ottimizzazione automatica in un server e l'eredità delle impostazioni per i database appartenenti al server padre, poiché questo metodo semplifica la gestione delle opzioni di ottimizzazione automatica per un numero elevato di database.Configuring Automatic tuning options on a server and inheriting settings for databases belonging to the parent server is a recommended method for configuring automatic tuning as it simplifies management of automatic tuning options for a large number of databases.

Passaggi successiviNext steps