Raccomandazioni sulle prestazioni di Advisor per database per database SQL di Azure
Si applica a: Database SQL di Azure
Il database SQL di Azure è in grado di apprendere e di adattarsi all'applicazione Database SQL di Azure include numerosi Advisor per database che forniscono raccomandazioni personalizzate per ottimizzare le prestazioni. Questi Advisor per database valutano e analizzano continuamente la cronologia di utilizzo e forniscono raccomandazioni basate su modelli di carico di lavoro per migliorare le prestazioni.
Informazioni generali sulle prestazioni
La Panoramica sulle prestazioni nel portale di Azure offre una panoramica delle prestazioni del database e facilita le operazioni di ottimizzazione delle prestazioni e risoluzione dei problemi.
- Se presente, il riquadro Consigli fornisce una suddivisione delle raccomandazioni per l’ottimizzazione del database. Se si fa clic su questo riquadro vengono visualizzate le Opzioni delle raccomandazioni per le prestazioni.
- Il riquadro Attività di ottimizzazione fornisce un riepilogo delle operazioni di ottimizzazione in corso e completate per il database e offre una vista rapida della cronologia delle attività di ottimizzazione. Selezionando questo riquadro vengono visualizzate le indicazioni e la cronologia di ottimizzazione del database. Per altre informazioni, vedere Ottimizzazione automatica.
- Il riquadro Ottimizzazione automatica visualizza la configurazione di ottimizzazione automatica per il database, ovvero le opzioni di ottimizzazione applicate automaticamente al database. Selezionando questo riquadro viene visualizzata la finestra di dialogo di configurazione dell'automazione. Per altre informazioni sull'ottimizzazione automatica di indici del database e di piani di esecuzione di query, vedere Ottimizzazione automatica.
- Il riquadro Query su database visualizza un riepilogo delle prestazioni delle query per il database (uso complessivo di DTU e query con il maggior consumo di risorse). Selezionando questo riquadro viene visualizzata la pagina Informazioni dettagliate prestazioni query.
- Il grafico predefinito fornisce un riepilogo delle ultime 24 ore di attività del database, con opzioni per esaminare le attività più recenti. I grafici a barre impilati analizzano le query principali in base alla CPU e il grafico a più righe rappresenta il carico di lavoro in base a CPU, I/O dati e I/O dei log. Selezionare singole barre impilate nel grafico, ognuna delle quali rappresenta un piano di query memorizzato nella cache. Esaminare la pagina Informazioni dettagliate prestazioni query e identificare le query più dispendiose per il carico di lavoro. Per altre informazioni, vedere Informazioni dettagliate prestazioni query.
Passare alla pagina Panoramica delle prestazioni in Prestazioni intelligenti nel menu di navigazione del portale di Azure per il database SQL di Azure.
Opzioni delle raccomandazioni per le prestazioni
Le opzioni delle raccomandazioni per le prestazioni disponibili in database SQL di Azure sono le seguenti:
Raccomandazioni per le prestazioni | Supporto dei database singoli e in pool | Supporto dei database dell'istanza |
---|---|---|
Creare raccomandazioni sugli indici: consiglia come creare indici che potrebbero migliorare le prestazioni del carico di lavoro. | Sì | No |
Raccomandazioni sull’eliminazione degli indici: raccomanda la rimozione degli indici ridondanti e duplicati ogni giorno, ad eccezione degli indici univoci e di quelli non usati per molto tempo (>90 giorni). Si noti che questa opzione non è compatibile con le applicazioni che usano cambi di partizione e hint di indice. L'eliminazione di indici inutilizzati non è supportata per i livelli di servizio Premium e Business Critical. | Sì | No |
Raccomandazioni su query con parametri (anteprima): vengono visualizzate quando sono presenti una o più query che vengono ricompilate costantemente ma finiscono con lo stesso piano di esecuzione di query. | Sì | No |
Raccomandazioni di correzioni di problemi di schema (anteprima): vengono visualizzate quando il servizio di database SQL di Azure rileva un'anomalia nel numero di errori SQL correlati allo schema nel database. Le raccomandazioni relative alla correzione dei problemi di schema sono attualmente in fase di deprecazione. | Sì | No |
Per applicare raccomandazioni sulle prestazioni, vedere Applicazione di raccomandazioni. Per visualizzare lo stato delle raccomandazioni, vedere le Operazioni di monitoraggio.
È anche possibile trovare la cronologia completa delle azioni di ottimizzazione applicate in precedenza.
Raccomandazioni relative alla creazione di indici
Database SQL di Azure monitora in modo continuo le query in esecuzione e identifica gli indici che potrebbero migliorare le prestazioni. Se la mancanza di un determinato indice è individuata con sufficiente attendibilità, viene creata una nuova raccomandazione Crea indice.
Il database SQL di Azure valuta l'attendibilità stimando il miglioramento delle prestazioni che l'indice potrebbe offrire nel tempo. In base al miglioramento delle prestazioni stimato, le raccomandazioni vengono classificate come alta, media o bassa.
Gli indici creati tramite raccomandazioni sono sempre contrassegnati come indici creati automaticamente. Per individuare gli indici creati automaticamente, esaminare la vista sys.indexes. Gli indici creati automaticamente non bloccano i comandi ALTER/RENAME.
Se si tenta di eliminare la colonna associata a un indice creato automaticamente, il comando passa e l'indice creato automaticamente viene eliminato con il comando. Gli indici normali bloccano il comando ALTER/RENAME sulle colonne indicizzate.
Dopo l'applicazione delle raccomandazioni per l'indice, il database SQL di Azure confronta le prestazioni delle query con quelle di base. Se il nuovo indice migliora le prestazioni, la raccomandazione è contrassegnata come positiva e il report di impatto diventa disponibile. Se l'indice non migliora le prestazioni, viene automaticamente ripristinato. Il database SQL di Azure usa questo processo per garantire che le raccomandazioni migliorino le prestazioni del database.
Per ogni raccomandazione crea indice, esistono criteri di sicurezza che non consentono di applicare la raccomandazione se l'uso delle risorse di un database o di un pool è elevato. I criteri di sicurezza tengono conto di CPU, I/O dati, I/O log e spazio di archiviazione disponibile.
Se il valore di CPU, I/O dati oppure I/O log è più alto dell'80% nei 30 minuti precedenti, la raccomandazione di creazione di indici viene posticipata. Se lo spazio di archiviazione disponibile sarà inferiore del 10% dopo la creazione dell'indice, la raccomandazione entra in uno stato di errore. Se, dopo un paio di giorni, si ritiene che l'indice sia ancora utile per l'ottimizzazione automatica, il processo inizia nuovamente.
Questo processo viene ripetuto fino a quando non è presente spazio di archiviazione sufficiente per creare un indice o fino a quando l'indice non è più considerato utile.
Raccomandazioni relative all'eliminazione di indici
Oltre a rilevare gli indici mancanti, database SQL di Azure analizza continuamente le prestazioni degli indici esistenti. Se un indice non viene usato, il database SQL di Azure consiglia di eliminarlo. L'eliminazione di un indice è consigliabile in due casi:
- L'indice è un duplicato di un altro indice (ovvero con colonna, schema di partizione e filtri identici)
- L'indice non è stato usato per un periodo prolungato (>90 giorni).
Anche le raccomandazioni relative all'eliminazione di indici sono sottoposte a verifica dopo l'implementazione. Se le prestazioni migliorano, il report di impatto diventa disponibile. Se le prestazioni diminuiscono, la raccomandazione viene ripristinata.
Raccomandazioni su query con parametri (anteprima)
Le raccomandazioni relative alla creazione di query con parametri vengono visualizzate quando sono presenti una o più query che vengono ricompilate costantemente ma finiscono con lo stesso piano di esecuzione di query. Questa determina la possibilità di applicare la parametrizzazione forzata che consente a sua volta di memorizzare nella cache i piani di query e di usarli nuovamente in futuro al fine di migliorare le prestazioni e ridurre l'uso delle risorse.
Ogni query deve inizialmente essere compilata per generare un piano di esecuzione. e ogni piano generato viene aggiunto alla cache dei piani. Nelle esecuzioni successive della stessa query è possibile usare nuovamente tale piano, condizione che elimina la necessità di un'altra compilazione.
Le query con valori senza parametri possono causare un sovraccarico delle prestazioni perché il piano di esecuzione viene ricompilato ogni volta che i valori senza parametri sono diversi. In molti casi, le stesse query con valori di parametro diversi generano gli stessi piani di esecuzione. Questi piani, tuttavia, vengono comunque aggiunti separatamente alla cache dei piani.
Il processo di ricompilazione dei piani di esecuzione usa le risorse del database, aumenta il tempo di durata della query e si verifica un overflow della cache dei piani. Questi eventi, a loro volta, determinano la rimozione dei piani dalla cache. Questo comportamento può essere modificato impostando l'opzione di parametrizzazione forzata nel database.
Per stimare l'impatto della raccomandazione, viene offerto un confronto tra l'uso effettivo e quello previsto della CPU (ovvero nel caso di applicazione della raccomandazione). Tale raccomandazione consente di ottenere risparmi in termini di CPU e di ridurre la durata delle query e l'overhead per la cache dei piani, in modo che più piani possano rimanere nella cache ed essere usati nuovamente. È possibile applicare questa raccomandazione rapidamente selezionando il comando Applica.
Dopo l'applicazione della raccomandazione, in pochi minuti nel database viene applicata la parametrizzazione forzata che avvia il processo di monitoraggio, che dura circa 24 ore. Dopo questo periodo, è possibile visualizzare il report di convalida. Il report mostra l'uso della CPU del database di 24 ore prima e dopo l'applicazione della raccomandazione. Advisor per database SQL di Azure include un meccanismo di sicurezza che ripristina automaticamente la raccomandazione applicata nel caso in cui venga rilevata una regressione delle prestazioni.
Raccomandazioni relative alla correzione di problemi di schema (anteprima)
Importante
Le raccomandazioni relative alla correzione dei problemi di schema sono attualmente in fase di deprecazione.
Le raccomandazioni di correzioni dei problemi di schema vengono visualizzate quando il servizio di database SQL di Azure rileva un'anomalia nel numero di errori SQL correlati allo schema nel database. In genere questa raccomandazione viene visualizzata quando il database rileva più errori correlati allo schema (nome di colonna o di oggetto non valido e così via) nell'arco di un'ora.
Con "Problemi dello schema" si indica una classe di errori di sintassi. Tali errori si verificano quando la definizione della query SQL e quella dello schema del database non sono allineate. Una delle colonne previste dalla query, ad esempio, potrebbe essere assente nella tabella di destinazione o viceversa.
Le raccomandazioni relative alla "correzione di problemi di schema" vengono visualizzate quando il database SQL di Azure rileva un'anomalia nel numero di errori SQL correlati allo schema nel database. La tabella seguente illustra gli errori correlati ai problemi di schema:
Codice di errore SQL | Message |
---|---|
201 | La procedura o funzione '' richiede il parametro '', che non è stato specificato. |
207 | Il nome di colonna '*' non è valido. |
208 | Il nome di oggetto '*' non è valido. |
213 | Il nome della colonna o il numero dei valori specificati non corrisponde alla definizione della tabella. |
2812 | Non è stato possibile trovare la stored procedure '*'. |
8144 | Numero eccessivo di argomenti specificati per la procedura o la funzione *. |
Applicazioni personalizzate
Gli sviluppatori possono prendere in considerazione lo sviluppo di applicazioni personalizzate utilizzando raccomandazioni sulle prestazioni per database SQL di Azure. È possibile accedere a tutte le raccomandazioni elencate nel portale per un database tramite l’API Get-AzSqlDatabaseRecommendedAction.
Passaggi successivi
- Per altre informazioni sull'ottimizzazione automatica di indici del database e di piani di esecuzione di query, vedere Ottimizzazione automatica nel database SQL di Azure.
- Per altre informazioni sul monitoraggio delle prestazioni del database, si veda Database Watcher.
- Per imparare a esaminare l'impatto sulle prestazioni delle query principali, vedere Query Performance Insight del database SQL di Azure.