Abilitare l'ottimizzazione automatica nei portale di Azure per monitorare le query e migliorare le prestazioni del carico di lavoro

Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure

Azure SQL Database gestisce automaticamente i servizi dati che monitorano costantemente le query e identificano l'azione che è possibile eseguire per migliorare le prestazioni del carico di lavoro. È possibile esaminare le raccomandazioni e applicarle manualmente oppure delegare al database SQL di Azure l'applicazione automatica delle azioni correttive, condizione nota come modalità di ottimizzazione automatica.

L'ottimizzazione automatica può essere abilitata a livello di server o di database tramite:

Nota

Per Istanza gestita di SQL di Azure, l'opzione supportata FORCE_LAST_GOOD_PLAN può essere configurata solo tramite T-SQL. Le opzioni di configurazione basata su portale di Azure e di ottimizzazione automatica degli indici descritte in questo articolo non si applicano alle Istanza gestita di SQL di Azure.

Nota

La configurazione delle opzioni di ottimizzazione automatica tramite il modello arm (Azure Resource Manager) non è attualmente supportata.

Abilitare l'ottimizzazione automatica nel server

A livello di server è possibile scegliere di ereditare o meno la configurazione dell'ottimizzazione automatica da "Impostazioni predefinite di Azure". Le impostazioni predefinite di Azure sono abilitate FORCE_LAST_GOOD_PLAN, CREATE_INDEX disabilitate e DROP_INDEX disabilitate.

Portale di Azure

Per abilitare l'ottimizzazione automatica in un server in Azure SQL Database, passare al server nel portale di Azure e quindi selezionare Ottimizzazione automatica nel menu.

Screenshot che mostra l'ottimizzazione automatica nel portale di Azure, in cui è possibile applicare le opzioni per un server.

Selezionare le opzioni di ottimizzazione automatica da abilitare e selezionare Applica.

Le opzioni di ottimizzazione automatica in un server vengono applicate a tutti i database nel server stesso. Per impostazione predefinita, tutti i database ereditano la configurazione dal server padre corrispondente, ma è possibile sostituire questa impostazione e specificarne una distinta per ogni database.

API REST

Per altre informazioni sull'uso di un'API REST per abilitare l'ottimizzazione automatica in un server, vedere Ottimizzazione automatica del server update e metodi HTTP GET.

Abilitare l'ottimizzazione automatica per un database singolo

Azure SQL Database consente di specificare singolarmente la configurazione di ottimizzazione automatica per ogni database. A livello di database è possibile scegliere di ereditare o meno la configurazione dell'ottimizzazione automatica dal server padre o da "Impostazioni predefinite di Azure". Le impostazioni predefinite di Azure sono impostate su FORCE_LAST_GOOD_PLAN è abilitata, CREATE_INDEX è disabilitata e DROP_INDEX è disabilitata.

Suggerimento

La raccomandazione generale consiste nel gestire la configurazione di ottimizzazione automatica a livello di server , in modo che le stesse impostazioni di configurazione possano essere applicate automaticamente a ogni database. Configurare l'ottimizzazione automatica in un singolo database solo se è necessario che per tale database le impostazioni siano diverse rispetto ai database che ereditano le impostazioni dallo stesso server.

Portale di Azure

Per abilitare l'ottimizzazione automatica in un database singolo, passare al database nel portale di Azure e selezionare Ottimizzazione automatica.

Singole impostazioni di ottimizzazione automatica possono essere configurate separatamente per ogni database. È possibile configurare manualmente una singola opzione di ottimizzazione automatica o specificare che un'opzione deve ereditare le impostazioni dal server.

Screenshot che mostra l'ottimizzazione automatica nel portale di Azure, in cui è possibile applicare le opzioni per un singolo database.

Dopo aver selezionato la configurazione desiderata, fare clic su Applica.

API REST

Per altre informazioni sull'uso di un'API REST per abilitare l'ottimizzazione automatica in un database singolo, vedere Azure SQL Metodi UPDATE e GET HTTP per l'ottimizzazione automatica del database.

T-SQL

Per abilitare l'ottimizzazione automatica per un singolo database con Transact-SQL, connettersi al database ed eseguire la query seguente:

ALTER DATABASE current SET AUTOMATIC_TUNING = AUTO | INHERIT | CUSTOM

L'impostazione dell'ottimizzazione automatica su AUTO verrà applicata alle impostazioni predefinite di Azure. Se viene impostata su INHERIT, la configurazione dell'ottimizzazione automatica verrà ereditata dal server padre. Se si sceglie CUSTOM, l'ottimizzazione automatica dovrà essere configurata manualmente.

Per configurare le singole opzioni di ottimizzazione automatica con Transact-SQL, connettersi al database ed eseguire la query seguente:

ALTER DATABASE current SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON, CREATE_INDEX = ON, DROP_INDEX = OFF)

L'impostazione dell'opzione di ottimizzazione singola su ON sostituirà qualsiasi impostazione ereditata dal database e abiliti l'opzione di ottimizzazione. Impostandolo su OFF verrà eseguito anche l'override di qualsiasi impostazione ereditata dal database e di disabilitazione dell'opzione di ottimizzazione. L'opzione di ottimizzazione automatica per cui viene specificato DEFAULT erediterà la configurazione di ottimizzazione automatica dalle impostazioni a livello di server.

Importante

Nel caso della replica geografica attiva, l'ottimizzazione automatica deve essere configurata solo nel database primario. Le azioni di ottimizzazione applicate automaticamente, ad esempio la creazione o l'eliminazione dell'indice, verranno replicate automaticamente in repliche secondarie geografiche. Il tentativo di abilitare l'ottimizzazione automatica tramite T-SQL nel database secondario di sola lettura genererà un errore perché non è supportata una configurazione di ottimizzazione diversa nel database secondario di sola lettura.

Per altre informazioni su come configurare l'ottimizzazione automatica, vedere Opzioni ALTER DATABASE SET (Transact-SQL) .

Risoluzione dei problemi

La gestione automatica delle raccomandazioni è disabilitata

In caso di messaggi di errore che la gestione automatica delle raccomandazioni è stata disabilitata o semplicemente disabilitata dal sistema, le cause più comuni sono:

  • Query Store non è abilitato o
  • Query Store è in modalità di sola lettura per un database specificato o
  • Query Store interrotta l'esecuzione perché è esaurito lo spazio di archiviazione allocato.

I passaggi seguenti possono essere considerati per correggere questo problema:

  • Pulire il Query Store o modificare il periodo di conservazione dei dati in "automatico" usando T-SQL oppure aumentare Query Store dimensioni massime. Vedere come configurare i criteri di conservazione e acquisizione consigliati per Query Store.
  • Usare SQL Server Management Studio (SSMS) e seguire questa procedura:
    • Connettersi al database Azure SQL
    • Fare clic con il pulsante destro del mouse sul database
    • Passare a Proprietà e fare clic su Query Store
    • Modificare la modalità operazione in Read-Write
    • Modificare la modalità di acquisizione dello Store in Automatico
    • Modificare la modalità pulizia basata sulle dimensioni su Auto

Autorizzazioni

Per Azure SQL Database, la gestione dell'ottimizzazione automatica in portale di Azure o l'uso di PowerShell o dell'API REST richiede l'appartenenza ai ruoli controllo degli accessi in base al ruolo predefiniti di Azure.

Per gestire l'ottimizzazione automatica, l'autorizzazione minima necessaria per concedere all'utente è l'appartenenza al ruolo collaboratore database SQL. È anche possibile usare ruoli con privilegi più elevati, ad esempio SQL Server Collaboratore, Collaboratore e Proprietario.

Per le autorizzazioni necessarie per gestire l'ottimizzazione automatica con T-SQL, vedere Autorizzazioni per ALTER DATABASE.

Configurare notifiche tramite posta elettronica per l'ottimizzazione automatica

Per ricevere notifiche automatiche tramite posta elettronica sulle raccomandazioni effettuate dall'ottimizzazione automatica, vedere la guida all'ottimizzazione automatica delle notifiche tramite posta elettronica .

Passaggi successivi