Raccomandazioni sulle prestazioni di Database Advisor 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 del database che forniscono raccomandazioni personalizzate che consentono di ottimizzare le prestazioni. Questi advisor del database valutano e analizzano continuamente la cronologia dell'utilizzo e forniscono raccomandazioni basate su modelli di carico di lavoro che consentono di migliorare le prestazioni.

Panoramica delle prestazioni

Panoramica delle prestazioni fornisce un riepilogo delle prestazioni del database e consente di ottimizzare e risolvere i problemi relativi alle prestazioni.

Performance overview for Azure SQL Database

  • Il riquadro Raccomandazioni offre un elenco di raccomandazioni di ottimizzazione per il database (vengono visualizzate le tre raccomandazioni principali se ne sono presenti di più). Facendo clic su questo riquadro si passa alle opzioni di raccomandazione 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. Se si fa clic su questo riquadro viene visualizzata la cronologia di ottimizzazione completa per il database.
  • Il riquadro Ottimizzazione automatica mostra la configurazione di ottimizzazione automatica per il database (opzioni di ottimizzazione applicate automaticamente al database). Se si fa clic su questo riquadro viene visualizzata la finestra di dialogo di configurazione dell'automazione.
  • 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). Se si fa clic su questo riquadro viene visualizzata la pagina Informazioni dettagliate prestazioni query.

Opzioni di raccomandazione sulle prestazioni

Le opzioni di raccomandazione sulle prestazioni disponibili in database SQL di Azure sono:

Raccomandazione sulle prestazioni Supporto dei database singoli e in pool Supporto del database dell'istanza
Creare raccomandazioni per l'indice : consiglia la creazione di indici che possono migliorare le prestazioni del carico di lavoro. No
Suggerimenti per l'indice di eliminazione : consiglia la rimozione giornaliera di indici ridondanti e duplicati, ad eccezione degli indici univoci e degli indici che non sono stati 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 degli indici inutilizzati non è supportata per Premium e business critical livelli di servizio. No
Parametrizzare le raccomandazioni sulle query (anteprima): consiglia la parametrizzazione forzata nei casi in cui si dispone di una o più query che vengono ricompilate costantemente, ma finiscono con lo stesso piano di esecuzione di query. No
Correzione dei problemi di schema (anteprima): Consigli per la correzione dello schema viene visualizzata quando database SQL di Azure si nota un'anomalia nel numero di errori correlati allo schema SQL che si verificano nel database. Le raccomandazioni relative alla correzione dei problemi di schema sono attualmente in fase di deprecazione. No

Performance recommendations for Azure SQL Database

Per applicare raccomandazioni sulle prestazioni, vedere Applicare raccomandazioni. Per visualizzare lo stato delle raccomandazioni, vedere 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. È possibile visualizzare gli indici creati automaticamente esaminando la visualizzazione 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 ha migliorato le prestazioni, viene ripristinato automaticamente. 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 CPU, I/O dati o I/O di log è superiore al 80% nei 30 minuti precedenti, la raccomandazione per l'indice di creazione 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 (93 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.

Parametrizzare le raccomandazioni sulle query (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 essere compilata inizialmente 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 ha un meccanismo di sicurezza che ripristina automaticamente la raccomandazione applicata se è stata rilevata la 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. È consigliabile usare l'Insights intelligente per monitorare i problemi di prestazioni del database, inclusi i problemi di schema descritti in precedenza nelle raccomandazioni relative al "Correzione del problema dello schema".

Correzione dei problemi di schema vengono visualizzati quando database SQL di Azure nota un'anomalia nel numero di errori correlati allo schema SQL che si verificano 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.

"Problemi di schema" sono 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.

La raccomandazione "Correzione del problema dello schema" viene visualizzata quando database SQL di Azure nota un'anomalia nel numero di errori correlati allo schema SQL che si verificano nel database. La tabella seguente illustra gli errori correlati ai problemi di schema:

Codice di errore SQL Messaggio
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 potrebbero prendere in considerazione lo sviluppo di applicazioni personalizzate usando consigli sulle prestazioni per database SQL di Azure. Tutti i consigli elencati nel portale per un database possono essere accessibili tramite l'API Get-AzSqlDatabaseRecommendedAction .

Passaggi successivi