Ottimizzazione automatica delle prestazioni del database SQL di Azure e di Istanza gestita di SQL di Azure
Si applica a: database SQL di Azure
Istanza gestita di SQL di Azure
database SQL in Fabric
L'ottimizzazione automatica offre picchi di prestazioni e carichi di lavoro stabili tramite l'ottimizzazione continua delle prestazioni basata su intelligenza artificiale e Machine Learning.
L'ottimizzazione automatica è un servizio di prestazioni intelligente completamente gestito che monitora continuamente le query eseguite in un database e migliora automaticamente le prestazioni. Questo risultato viene raggiunto adattando in modo dinamico un database ai carichi di lavoro modificabili e applicando le raccomandazioni di ottimizzazione.
L'ottimizzazione automatica apprende orizzontalmente da tutti i database in Azure grazie all'intelligenza artificiale e migliora in modo dinamico le azioni di ottimizzazione.
Sicura, affidabile e collaudata
Le operazioni di ottimizzazione applicate ai database sono assolutamente sicure per le prestazioni dei carichi di lavoro più elevati. Il sistema è stato progettato in modo che non interferisca con i carichi di lavoro dell'utente.
I consigli di ottimizzazione automatizzata vengono applicati solo in caso di basso utilizzo di CPU, I/O di dati e I/O di log. Il sistema può anche disabilitare temporaneamente le operazioni di ottimizzazione automatica per proteggere le prestazioni dei carichi di lavoro. In questo caso, il messaggio "Disabilitato dal sistema" verrà visualizzato nel portale di Azure e nella vista di gestione dinamica sys.database_automatic_tuning_options. L'ottimizzazione automatica è progettata per assegnare ai carichi di lavoro degli utenti la massima priorità fra le risorse.
I meccanismi di ottimizzazione automatica sono ormai avanzati e sono stati perfezionati in diversi milioni di database in esecuzione su Azure. Le operazioni di ottimizzazione automatizzate applicate vengono verificate automaticamente per garantire un notevole miglioramento delle prestazioni del carico di lavoro. Se non sono presenti miglioramenti o in caso di regredimento delle prestazioni improbabili, le modifiche apportate dall'ottimizzazione automatica vengono ripristinate tempestivamente. La cronologia di ottimizzazione registrata offre una chiara analisi dei miglioramenti apportati a ogni database in Database SQL di Azure. Più a lungo un database funziona con l'ottimizzazione automatica abilitata, più potrebbe beneficiarne.
L'ottimizzazione automatica di Azure SQL condivide la logica principale con la funzionalità di ottimizzazione automatica nel motore di database. Per altre informazioni tecniche sul meccanismo di intelligenza artificiale incorporata, vedere SQL Server automatic tuning (Ottimizzazione automatica di SQL Server).
Suggerimento
Per altre informazioni, vedere Blog: Intelligenza Artificiale ottimizza Azure SQL Database.
Leggi il PDF di Microsoft Research sull'indicizzazione automatica di milioni di database in Microsoft Azure SQL Database.
I vantaggi dell'ottimizzazione automatica
L'ottimizzazione automatica delle prestazioni dei database include:
- Verifica automatizzata dei miglioramenti delle prestazioni
- Ripristino dello stato precedente automatizzato e correzione automatica
- Cronologia ottimizzazione
- Ottimizzazione degli script di azione Transact-SQL (T-SQL) per le distribuzioni manuali
- Capacità di aumentare il numero di istanze in centinaia di migliaia di database
- Impatto positivo sulle risorse DevOps e sul costo totale di proprietà
Abilitare l'ottimizzazione automatica
- Database SQL di Azure: abilitare l'ottimizzazione automatica nel portale di Azure o tramite l'istruzione T-SQL ALTER DATABASE.
- Istanza gestita di SQL di Azure: abilitare l'ottimizzazione automatica tramite l'istruzione T-SQL ALTER DATABASE.
- Database SQL in Microsoft Fabric: abilitato per impostazione predefinita. Per altre informazioni, vedere Dashboard delle prestazioni per il database SQL in Microsoft Fabric.
Opzioni di ottimizzazione automatica
Le opzioni di ottimizzazione automatica disponibili in Database SQL di Azure e Istanza gestita di SQL di Azure sono:
Opzione di ottimizzazione automatica | Descrizione | Supporto dei database singoli e in pool | Supporto dei database dell'istanza |
---|---|---|---|
CREATE INDEX | Identifica gli indici che potrebbero migliorare le prestazioni del carico di lavoro, crea indici e verifica automaticamente che le prestazioni delle query siano migliorate. Quando viene consigliato un nuovo indice, il sistema considera lo spazio disponibile nel database. Se si stima che l'aggiunta dell'indice aumenti l'utilizzo dello spazio a oltre 90% verso le dimensioni massime dei dati, la raccomandazione sull'indice non viene generata. Quando il sistema identifica un periodo di basso utilizzo e inizia a creare un indice, non sospende o annulla questa operazione anche se l'utilizzo delle risorse aumenta in maniera imprevista. Se la creazione dell'indice non va a buon fine, verrà ritentata durante un periodo futuro di basso utilizzo. Le raccomandazioni sugli indici non vengono fornite per le tabelle in cui l'indice cluster o l'heap è maggiore di 10 GB. | Sì | No |
DROP INDEX | Elimina gli indici inutilizzati (negli ultimi 90 giorni) e duplicati. Gli indici univoci, compresi gli indici che supportano la chiave primaria e i vincoli di unicità, non vengono mai eliminati. Questa opzione può essere disabilitata automaticamente quando nel carico di lavoro sono presenti query con suggerimenti sull'indice o quando si esegue il cambio di partizione nel carico di lavoro. Nei livelli di servizio Premium e Business Critical, questa opzione non elimina mai gli indici inutilizzati, ma elimina gli indici duplicati, se presenti. | Sì | No |
FORCE LAST GOOD PLAN (correzione automatica del piano) | Identifica le query SQL Azure che usano un piano di esecuzione più lento rispetto a un piano valido precedente e forza le query all'uso dell'ultimo piano valido noto anziché del piano con regressione. | Sì | Sì |
Ottimizzazione automatica per il database SQL di Azure
L'ottimizzazione automatica per database SQL di Azure usa i consigli di Advisor per database CREATE INDEX, DROP INDEX e FORCE_LAST_GOOD_PLAN per ottimizzare le prestazioni del database. Per altre informazioni, vedere Trovare e applicare raccomandazioni sulle prestazioni nel portale di Azure, in PowerShelle nell'API REST .
È possibile applicare manualmente le raccomandazioni di ottimizzazione tramite il portale Azure, oppure consentirne l'applicazione autonoma da parte dell'ottimizzazione automatica. I vantaggi di consentire al sistema di applicare autonomamente le raccomandazioni di ottimizzazione è che convalida automaticamente che esiste un miglioramento positivo delle prestazioni del carico di lavoro e, se non sono stati rilevati miglioramenti significativi delle prestazioni o se le prestazioni regredino, il sistema ripristina automaticamente le modifiche apportate. A seconda della frequenza di esecuzione delle query, il processo di convalida può richiedere da 30 minuti a 72 ore e richiede più tempo per le query eseguite con minore frequenza. Se, in qualsiasi momento, durante la convalida viene rilevata una regressione, le modifiche vengono ripristinate immediatamente.
Importante
Nel caso in cui si applichino i consigli di ottimizzazione tramite T-SQL, la convalida automatica delle prestazioni e i meccanismi di ripristino non sono disponibili. I consigli applicati in questo modo rimarranno attivi e visualizzati nell'elenco dei consigli di ottimizzazione per 24-48 ore prima che il sistema li ritiri automaticamente. Se si vuole rimuovere un consiglio prima di questo intervallo di tempo, è possibile eliminarlo dal portale di Azure.
Le opzioni di ottimizzazione automatica possono essere abilitate o disabilitate in modo indipendente per ogni database, oppure possono essere configurate a livello server e applicate a ogni database che eredita le impostazioni dal server. Per impostazione predefinita, i nuovi server ereditano le impostazioni predefinite di Azure per le impostazioni di ottimizzazione automatica. Le impostazioni predefinite di Azure sono impostate su FORCE_LAST_GOOD_PLAN (abilitata), CREATE_INDEX (disabilitata) e DROP_INDEX (disabilitata).
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. Ciò semplifica la gestione delle opzioni di ottimizzazione automatica per un numero elevato di database.
Per altre informazioni sulla generazione di notifiche tramite posta elettronica per i consigli di ottimizzazione automatica, vedere Notifiche tramite posta elettronica per l'ottimizzazione automatica.
Ottimizzazione automatica per Istanza gestita di SQL di Azure
L'ottimizzazione automatica per Istanza gestita di SQL di Azure supporta solo FORCE LAST GOOD PLAN. Per altre informazioni sulla configurazione delle opzioni di ottimizzazione automatica tramite T-SQL, vedere L'ottimizzazione automatica introduce la correzione automatica del piano e Correzione automatica del piano.
Ottimizzazione automatica per il database SQL in Microsoft Fabric
L'opzione di ottimizzazione automatica create INDEX viene abilitata automaticamente nel database SQL in Microsoft Fabric.
Esempi di abilitazione
Per altre informazioni, vedere le opzioni ALTER DATABASE SET.
Per ereditare la configurazione predefinita dal server logico padre, usare il T-SQL seguente. Nel portale di Azure questa opzione riflette l'opzione "Eredita da: Server".
ALTER DATABASE CURRENT
SET AUTOMATIC_TUNING = INHERIT;
Per abilitare le opzioni di ottimizzazione automatica CREATE INDEX e DROP INDEX, usare il T-SQL seguente.
ALTER DATABASE CURRENT
SET AUTOMATIC_TUNING
(CREATE_INDEX = ON, DROP_INDEX = ON);
Cronologia dell'ottimizzazione automatica
Per Database SQL di Azure, la cronologia delle modifiche apportate dall'ottimizzazione automatica viene mantenuta per 21 giorni. Può essere visualizzata nel portale di Azure alla pagina Consigli sulle prestazioni per un database, o tramite PowerShell con il cmdlet Get-AzSqlDatabaseRecommendedAction. Per una conservazione più lunga, i dati della cronologia possono anche essere trasmessi a diversi tipi di destinazioni abilitando l'impostazione di diagnosticaAutomaticTuning.
Contenuto correlato
- Informazioni su come l'ottimizzazione automatica consente di diagnosticare e risolvere i problemi di utilizzo elevato della CPU nel database SQL di Azure