Monitorare le query e migliorare le prestazioni del carico di lavoro con l'ottimizzazione automatica nel portale di Azure
Si applica a:Database SQL di AzureIstanza gestita di SQL di Azure
Il database SQL di Azure gestisce automaticamente i servizi dati che eseguono un monitoraggio costante delle query e identifica l'azione che è possibile eseguire per migliorare le prestazioni del carico di lavoro. È possibile esaminare le raccomandazioni e applicarle manualmente oppure consentire al database SQL di Azure di applicare automaticamente le azioni correttive. Questa operazione è 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. La configurazione basata sul portale di Azure e le opzioni di ottimizzazione automatica degli indici descritte in questo articolo non si applicano a Istanza gestita di SQL di Azure.
La configurazione delle opzioni di ottimizzazione automatica tramite il modello di Azure Resource Manager (ARM) non è attualmente supportata.
Abilitare l'ottimizzazione automatica nel server
A livello di server, è possibile scegliere di ereditare la configurazione di ottimizzazione automatica da "Impostazioni predefinite di Azure" o non ereditare la configurazione. Le impostazioni predefinite di Azure sono FORCE_LAST_GOOD_PLAN
abilitate, CREATE_INDEX
disabilitate e DROP_INDEX
disabilitate.
Portale di Azure
Per abilitare l'ottimizzazione automatica in un server di database SQL di Azure, passare al server nel portale di Azure e quindi selezionare Ottimizzazione automatica nel menu.
Selezionare le opzioni di ottimizzazione automatica che si vuole 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.
REST API
Per trovare altre informazioni sull'uso dell'API REST per abilitare l'ottimizzazione automatica in un server, vedere Metodi HTTP UPDATE e GET per l'ottimizzazione automatica del Server.
La configurazione delle opzioni di ottimizzazione automatica tramite il modello di Azure Resource Manager (ARM) non è attualmente supportata.
Abilitare l'ottimizzazione automatica per un database singolo
Il database SQL di Azure consente di specificare singolarmente la configurazione di ottimizzazione automatica per ciascun 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". Queste impostazioni predefinite sono le seguenti:
-
FORCE_LAST_GOOD_PLAN
è abilitato -
CREATE_INDEX
è disabilitato -
DROP_INDEX
è disabilitato
Suggerimento
In genere è consigliabile gestire la configurazione di ottimizzazione automatica a livello del server, in modo che le stesse impostazioni di configurazione possano essere applicate automaticamente in 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 per un singolo database, passare al database nel portale di Azure, quindi 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.
Dopo aver selezionato la configurazione desiderata, selezionare Applica.
REST API
Per trovare altre informazioni sull'uso di un’API REST per abilitare l'ottimizzazione automatica in un database singolo, vedere Metodi HTTP UPDATE e GET per l'ottimizzazione automatica del database SQL di Azure.
La configurazione delle opzioni di ottimizzazione automatica tramite il modello di Azure Resource Manager (ARM) non è attualmente supportata.
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
applica le impostazioni predefinite di Azure. Impostandolo su INHERIT
, la configurazione di ottimizzazione automatica viene ereditata dal server padre. Se si sceglie CUSTOM
, è necessario configurare manualmente l'ottimizzazione automatica.
Per configurare le singole opzioni di ottimizzazione automatica tramite T-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 sostituisce qualsiasi impostazione ereditata dal database e abilita l'opzione di ottimizzazione. Impostandolo su OFF
sostituisce anche qualsiasi impostazione ereditata dal database e disabilita l'opzione di ottimizzazione. Le opzioni di ottimizzazione automatica per le quali è specificato DEFAULT
ereditano la configurazione di ottimizzazione automatica dalle impostazioni a livello di server.
Importante
Per 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 di un indice, vengono replicate automaticamente in repliche secondarie geografiche. Il tentativo di abilitare l'ottimizzazione automatica tramite T-SQL nel database secondario di sola lettura genera un errore, perché non è supportata una configurazione di ottimizzazione diversa nel database secondario di sola lettura.
Per ulteriori informazioni sulle opzioni T-SQL per configurare l'ottimizzazione automatica, vedere ALTER DATABASE SET Options.
Risoluzione dei problemi
Gestione automatica dei consigli disabilitata
Se vengono visualizzati messaggi di errore che la gestione automatizzata delle raccomandazioni è stata disabilitata o disabilitata dal sistema, le cause più comuni sono:
- Query Store non è abilitato o
- Query Store è in modalità di sola lettura per un database specifico o
- Query Store ha interrotto l'esecuzione perché ha esaurito lo spazio di archiviazione assegnato.
È possibile attenersi a questa procedura per rettificare il problema:
Pulire Query Store o modificare il periodo di conservazione dei dati in "automatico" usando T-SQL, oppure aumentare le dimensioni massime di Query Store. 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 SQL di Azure.
- Fare clic con il pulsante destro del mouse sul database.
- Vai su Proprietà e seleziona Query Store.
- Modificare il modalità operazione in lettura/scrittura.
- Modificare la modalità di acquisizione dello store in Auto.
- Modificare la modalità di pulizia basata sulle dimensioni in automatico.
Autorizzazioni
Per il database SQL di Azure, la gestione dell'ottimizzazione automatica nel portale di Azure o l'uso di PowerShell o dell'API REST richiede l'appartenenza ai ruoli predefiniti del controllo degli accessi in base al ruolo di Azure.
Per gestire l'ottimizzazione automatica, l'autorizzazione minima necessaria da concedere all'utente è l'appartenenza al ruolo Collaboratore database SQL. È anche possibile prendere in considerazione l'uso di ruoli con privilegi più elevati, ad esempio Collaboratore SQL Server, 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 email automatizzate sui consigli forniti dall'ottimizzazione automatica, vedere la guida alle notifiche email sull’ottimizzazione automatica.