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 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.

Tip

Prova il Database Hub in Microsoft Fabric! Il Centro del Database:

  • scopre automaticamente i tuoi database in Azure, Microsoft Fabric, on-premises e ambienti multicloud supportati.
  • fornisce automaticamente dashboard precostruite, configurabili e condivisibili.
  • Identifica automaticamente le priorità e le raccomandazioni principali nei tuoi database che dovresti indagare o correggere.
  • è completamente gratuito.

Per ulteriori informazioni, consulta Database Hub in Microsoft Fabric.

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 si accede a Query Performance Insight.
  • 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. Vai alla pagina Approfondimenti sulle prestazioni delle query e identifica le query più costose nel tuo carico di lavoro. Per altre informazioni, vedi Approfondimenti sulle prestazioni delle query.

Passare alla pagina Panoramica delle prestazioni in Prestazioni intelligenti nel menu di navigazione del portale di Azure per il database SQL di Azure.

Schermata dal portale di Azure della Panoramica delle prestazioni 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 del 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 per la parametrizzazione delle query (anteprima) - Consiglia la parametrizzazione forzata nei casi in cui una o più query vengano ricompilate costantemente ma finiscano per avere lo stesso piano di esecuzione della 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. Microsoft sta attualmente deprecando le raccomandazioni "Fix schema issue". Sì No

Screenshot del portale di Azure che mostra le raccomandazioni sulle prestazioni di esempio per database SQL di Azure.

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 su cui è stato creato automaticamente un indice, il comando viene eseguito correttamente. e l'indice creato automaticamente viene eliminato con il comando. Gli indici normali bloccano il comando ALTER/RENAME sulle colonne indicizzate.

Dopo aver applicato la raccomandazione di creazione dell'indice, database SQL di Azure confronta le prestazioni delle query con le prestazioni di riferimento. 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. La politica di back-off tiene conto di CPU, I/O dei dati, I/O del log e dello 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, l'ottimizzazione automatica ritiene ancora che l'indice sarebbe vantaggioso, il processo ricomincia.

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 per la parametrizzazione delle 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 La parametrizzazione forzata, a sua volta, consente di memorizzare nella cache i piani di esecuzione delle query e di riutilizzarli in futuro, migliorando le prestazioni e riducendo l'utilizzo delle risorse.

Ogni query deve inizialmente essere compilata per generare un piano di esecuzione. e ogni piano generato viene aggiunto alla cache dei piani. Le esecuzioni successive della stessa query possono riutilizzare questo piano dalla cache, il che elimina la necessità di un'ulteriore 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 Può anche aiutarti a ridurre la durata delle query e l'overhead della cache dei piani, il che significa che un numero maggiore di piani può rimanere nella cache ed essere riutilizzato. È 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

Microsoft sta attualmente deprecando le raccomandazioni "Fix schema issue".

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 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 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