Ottimizzazione automatica in database SQL di Azure e Istanza gestita di SQL di Azure

SI APPLICA A: Database SQL di Azure Istanza gestita di SQL di Azure

database SQL di Azure e Istanza gestita di SQL di Azure'ottimizzazione automatica offre prestazioni elevate e carichi di lavoro stabili tramite l'ottimizzazione continua delle prestazioni basata su intelligenza artificiale e 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. Questo risultato viene raggiunto adattando in modo dinamico il 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. Più a lungo un database viene eseguito con l'ottimizzazione automatica attivata, migliori sono le prestazioni.

database SQL di Azure e Istanza gestita di SQL di Azure'ottimizzazione automatica potrebbe essere una delle funzionalità più importanti che è possibile abilitare per fornire carichi di lavoro di database stabili e con prestazioni massime.

Cosa può fare l'ottimizzazione automatica per l'utente

  • Ottimizzazione automatizzata delle prestazioni dei database
  • Verifica automatizzata dei miglioramenti delle prestazioni
  • Ripristino dello stato precedente automatizzato e correzione automatica
  • Cronologia ottimizzazione
  • Script Transact-SQL (T-SQL) dell'azione di ottimizzazione per le distribuzioni manuali
  • Monitoraggio delle prestazioni dei carichi di lavoro proattivo
  • Capacità di aumentare il numero di istanze in centinaia di migliaia di database
  • Impatto positivo sulle risorse DevOps e sul costo totale di proprietà

Sicura, affidabile e collaudata

Le operazioni di ottimizzazione applicate ai database SQL di Azure sono completamente sicure per le prestazioni dei carichi di lavoro più intensi. Il sistema è stato progettato in modo che non interferisca con i carichi di lavoro degli utenti. Le raccomandazioni di ottimizzazione automatizzata vengono applicate solo in caso di sottoutilizzo. Il sistema può anche disabilitare temporaneamente le operazioni di ottimizzazione per proteggere le prestazioni dei carichi di lavoro. In questo caso, il messaggio "Disabilitato dal sistema" verrà visualizzato in portale di Azure. L'ottimizzazione automatica interessa i carichi di lavoro con la priorità delle risorse più elevata.

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 automatizzata applicate vengono verificate automaticamente per assicurare che sussista un miglioramento delle prestazioni dei carichi di lavoro. Le raccomandazioni per le prestazioni peggiorate vengono rilevate in modo dinamico e ripristinate tempestivamente. Attraverso la cronologia di ottimizzazione registrata, esiste una traccia chiara dei miglioramenti apportati a ogni database in database SQL di Azure e Istanza gestita di SQL di Azure.

Come funziona l'ottimizzazione automatica

database SQL di Azure'ottimizzazione automatica è la condivisione della logica di base con la SQL Server 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).

Per una panoramica del funzionamento dell'ottimizzazione automatica e per gli scenari di utilizzo tipici, vedere il video incorporato:

Abilitare l'ottimizzazione automatica

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 Supporto dei database singoli e in pool Supporto del database dell'istanza
CREATE INDEX: identifica gli indici che possono migliorare le prestazioni del carico di lavoro, crea indici e verifica automaticamente che le prestazioni delle query sono migliorate. No
DROP INDEX: elimina gli indici inutilizzati (negli ultimi 90 giorni) e duplica gli indici. Gli indici univoci, inclusi gli indici che supportano vincoli di chiave primaria e univoci, non vengono mai eliminati. Questa opzione può essere disabilitata automaticamente quando nel carico di lavoro sono presenti query con hint di indice o quando il carico di lavoro esegue il cambio di partizione. Nei livelli di servizio Premium e business critical, questa opzione non elimina mai gli indici inutilizzati, ma elimina gli eventuali indici duplicati. No
FORCE LAST GOOD PLAN (correzione automatica del piano): identifica le query Azure SQL che usano un piano di esecuzione più lento del piano positivo precedente e le query che usano l'ultimo piano positivo noto anziché il piano regredito.

Ottimizzazione automatica per il database SQL

L'ottimizzazione automatica database SQL di Azure le raccomandazioni create INDEX, DROP INDEX e FORCE LAST GOOD PLAN per ottimizzare le prestazioni del database. Per altre informazioni, vedere Raccomandazioni di Advisordatabase nel portale di Azure , in PowerShelle nell'API REST.

È possibile applicare manualmente le raccomandazioni di ottimizzazione usando il portale di Azure oppure consentire all'ottimizzazione automatica di applicare autonomamente le raccomandazioni di ottimizzazione. 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. 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.

Se si applicano raccomandazioni di ottimizzazione tramite T-SQL, la convalida automatica delle prestazioni e i meccanismi di inversione non sono disponibili. Le raccomandazioni applicate in questo modo rimarranno attive e visualizzate nell'elenco delle raccomandazioni di ottimizzazione per 24-48 ore. prima che il sistema li ritiri automaticamente. Se si vuole rimuovere una raccomandazione prima, è possibile rimuoverla 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 di server e applicate a ogni database che eredita le impostazioni dal server. I server possono ereditare le impostazioni predefinite di Azure per le impostazioni di ottimizzazione automatica. Le impostazioni predefinite di Azure in questo momento sono FORCE_LAST_GOOD_PLAN (abilitata), CREATE_INDEX (abilitata) e DROP_INDEX (disabilitata).

Importante

A partire da marzo 2020 le modifiche alle impostazioni predefinite di Azure per l'ottimizzazione automatica avranno effetto come segue:

  • Le nuove impostazioni predefinite di Azure FORCE_LAST_GOOD_PLAN = abilitato, CREATE_INDEX = disabilitato e DROP_INDEX = disabilitato.
  • I server esistenti senza preferenze di ottimizzazione automatica configurate verranno configurati automaticamente in modo da ereditare le nuove impostazioni predefinite di Azure. Questo vale per tutti i clienti che attualmente hanno impostazioni del server per l'ottimizzazione automatica in uno stato non definito.
  • I nuovi server creati verranno configurati automaticamente in modo da ereditare le nuove impostazioni predefinite di Azure,a differenza di quanto accadeva in precedenza quando la configurazione dell'ottimizzazione automatica era in uno stato non definito al momento della creazione del nuovo server.

La configurazione delle opzioni di ottimizzazione automatica in un server e l'ereditarietà delle impostazioni per i database appartenenti al server padre sono un metodo consigliato per la configurazione dell'ottimizzazione automatica, in quanto semplifica la gestione delle opzioni di ottimizzazione automatica per un numero elevato di database.

Per informazioni sulla creazione di notifiche di posta elettronica per le raccomandazioni 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 SQL Istanza gestita supporta solo FORCE LAST GOOD PLAN. Per altre informazioni sulla configurazione delle opzioni di ottimizzazione automatica tramite T-SQL, vedere Ottimizzazione automatica introduce la correzione automatica dei piani e Correzione automatica del piano.

Passaggi successivi