Raccomandazioni per le prestazioniPerformance recommendations

Il database SQL di Azure apprende e si adatta all'applicazione e offre raccomandazioni personalizzate che consentono di ottimizzare le prestazioni dei database SQL.Azure SQL Database learns and adapts with your application and provides customized recommendations enabling you to maximize the performance of your SQL databases. Le prestazioni vengono valutate continuamente analizzando la cronologia relativa all'utilizzo del database SQL.Your performance is continuously assessed by analyzing your SQL Database usage history. Le raccomandazioni fornite si basano su un modello di carico di lavoro univoco del database e consentono di migliorarne le prestazioni.The recommendations that are provided are based on a database unique workload pattern and help improve its performance.

Suggerimento

L'ottimizzazione automatica è il metodo consigliato per l'ottimizzazione delle prestazioni.Automatic tuning is the recommended way of performance tuning. Intelligent Insights è il metodo consigliato per il monitoraggio delle prestazioni.Intelligent Insights is the recommended way of monitoring performance.

Raccomandazioni relative alla creazione di indiciCreate index recommendations

Il database SQL di Azure esegue un monitoraggio continuo delle query eseguite e identifica gli indici che potrebbero migliorare le prestazioni.Azure SQL Database continuously monitors the queries being executed and identifies the indexes that could improve the performance. Dopo aver raccolto dati sufficienti per confermare la mancanza di un determinato indice, verrà creata una nuova raccomandazione Crea indice.Once enough confidence is built that a certain index is missing, a new Create index recommendation will be created. Il database SQL di Azure conferma l'attendibilità dei rilevamenti stimando il miglioramento delle prestazioni che potrebbe offrire l'indice nel tempo.Azure SQL Database builds confidence by estimating performance gain the index would bring through time. A seconda del miglioramento delle prestazioni stimato, le raccomandazioni vengono classificate come Alta, Media o Bassa.Depending on the estimated performance gain, recommendations are categorized as High, Medium, or Low.

Gli indici creati usando le raccomandazioni vengono sempre contrassegnati come indici auto_created.Indexes created using recommendations are always flagged as auto_created indexes. È possibile scoprire quali indici sono auto_created esaminando la vista sys.indexes.You can see which indexes are auto_created by looking at sys.indexes view. Gli indici creati automaticamente non bloccano i comandi ALTER/RENAME.Auto created indexes don’t block ALTER/RENAME commands. Se si tenta di eliminare la colonna su cui si basa un indice creato automaticamente, il comando viene eseguito ed elimina anche l'indice creato automaticamente.If you try to drop the column that has an auto created index over it, the command passes and the auto created index is dropped with the command as well. Gli indici normali bloccano il comando ALTER/RENAME sulle colonne indicizzate.Regular indexes would block the ALTER/RENAME command on columns that are indexed.

Dopo aver applicato la raccomandazione per l'indice, il database SQL di Azure confronterà le prestazioni delle query con la baseline.Once the create index recommendation is applied, Azure SQL Database will compare performance of the queries with the baseline performance. Se il nuovo indice ha introdotto miglioramenti delle prestazioni, la raccomandazione verrà contrassegnata come positiva e sarà disponibile un report dell'impatto.If new index brought improvements in the performance, recommendation will be flagged as successful and impact report will be available. Se l'indice non offre vantaggi, verrà annullato automaticamente.In case the index didn’t bring the benefits, it will be automatically reverted. In questo modo il database SQL di Azure garantisce che l'uso delle raccomandazioni consenta solo di ottenere miglioramenti delle prestazioni del database.This way Azure SQL Database ensures that using recommendations will only improve the database performance.

Per qualsiasi raccomandazione Crea indice esiste un criterio di sicurezza che non consente di applicare la raccomandazione se l'utilizzo DTU del database o del pool è superiore all'80% negli ultimi 20 minuti oppure se l'utilizzo dello spazio di archiviazione è superiore al 90%.Any Create index recommendation has a back off policy that won’t allow applying the recommendation if the database or pool DTU usage was above 80% in last 20 minutes or if the storage is above 90% of usage. In questo caso, l'applicazione della raccomandazione verrà posticipata.In this case, the recommendation will be postponed.

Raccomandazioni relative all'eliminazione di indiciDrop index recommendations

Oltre a rilevare un indice mancante, i database SQL di Azure analizzano continuamente le prestazioni degli indici esistenti.In addition to detecting a missing index, Azure SQL Database continuously analyzes the performance of existing indexes. Se un indice è inutilizzato, il database SQL di Azure proporrà di eliminarlo.If index is not used, Azure SQL Database will recommend dropping it. L'eliminazione di un indice è consigliabile in due casi:Dropping an index is recommended in two cases:

  • L'indice è un duplicato di un altro indice (include colonna, schema di partizione e filtri identici)Index is a duplicate of another index (same indexed and included column, partition schema, and filters)
  • L'indice risulta inutilizzato per un periodo prolungato (93 giorni)Index is unused for a prolonged period (93 days)

Anche le raccomandazioni relative all'eliminazione di indici sono sottoposte a verifica dopo l'implementazione.Drop index recommendations also go through the verification after implementation. Se le prestazioni risultano migliorate sarà disponibile il report di impatto.If the performance is improved the impact report will be available. Se viene invece rilevata una riduzione delle prestazioni, la raccomandazione verrà annullata.In case performance degradation is detected, recommendation will be reverted.

Raccomandazioni relative alla creazione di query con parametriParameterize queries recommendations

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.Parameterize queries recommendations appear when you have one or more queries that are constantly being recompiled but end up with the same query execution plan. Questa condizione fa emergere l'opportunità di applicare l'impostazione forzata di parametri, in modo da permettere la memorizzazione nella cache e il riutilizzo delle query in futuro, con conseguente miglioramento delle prestazioni e riduzione dell'utilizzo delle risorse.This condition opens up an opportunity to apply forced parameterization, which will allow query plans to be cached and reused in the future improving performance and reducing resource usage.

Ogni query eseguita inizialmente su SQL Server deve essere compilata per generare un piano di esecuzione.Every query issued against SQL Server initially needs to be compiled to generate an execution plan. Ogni piano generato viene aggiunto alla cache dei piani e le esecuzioni successive della stessa query possono riusare il piano dalla cache, eliminando la necessità di un'ulteriore compilazione.Each generated plan is added to the plan cache and subsequent executions of the same query can reuse this plan from the cache, eliminating the need for additional compilation.

Le applicazioni che inviano query che includono valori senza parametri possono causare un overhead delle prestazioni, in cui per ogni query di questo tipo con valori di parametri diversi viene compilato di nuovo il piano di esecuzione.Applications that send queries, which include non-parameterized values, can lead to a performance overhead, where for every such query with different parameter values the execution plan is compiled again. In molti casi le stesse query con valori di parametri diversi generano gli stessi di piani di esecuzione, ma questi piani vengono comunque aggiunti separatamente alla cache dei piani.In many cases the same queries with different parameter values generate the same execution plans, but these plans are still separately added to the plan cache. La ricompilazione dei piani di esecuzione determina l'uso delle risorse del database, l'aumento della durata della query e l'overflow della cache dei piani con conseguente rimozione dei piani dalla cache.Recompiling execution plans use database resources, increase the query duration time and overflow the plan cache causing plans to be evicted from the cache. Questo comportamento di SQL Server può essere modificato impostando l'opzione di parametrizzazione forzata nel database.This behavior of SQL Server can be altered by setting the forced parameterization option on the database.

Per stimare l'impatto di questa raccomandazione, viene illustrato un confronto tra l'uso effettivo e quello previsto della CPU (nel caso di applicazione della raccomandazione).To help you estimate the impact of this recommendation, you are provided with a comparison between the actual CPU usage and the projected CPU usage (as if the recommendation was applied). Oltre al risparmio della CPU, anche la durata della query diminuisce per il tempo impiegato nella compilazione.In addition to CPU savings, your query duration decreases for the time spent in compilation. Anche il sovraccarico della cache dei piani sarà nettamente ridotto, consentendo alla maggioranza dei piani di rimanere nella cache e di essere riusati.There will also be much less overhead on plan cache, allowing majority of the plans to stay in cache and be reused. Questa raccomandazione può essere applicata rapidamente e facilmente facendo clic sul comando Applica.You can apply this recommendation quickly and easily by clicking on the Apply command.

Dopo l'applicazione, questa raccomandazione abiliterà la parametrizzazione forzata sul database entro pochi minuti e inizierà il processo di monitoraggio che dura circa 24 ore.Once you apply this recommendation, it will enable forced parameterization within minutes on your database and it starts the monitoring process which approximately lasts for 24 hours. Trascorso questo intervallo di tempo, sarà possibile visualizzare il report di convalida che mostra l'utilizzo della CPU del database nelle 24 ore prima e dopo l'applicazione la raccomandazione.After this period, you will be able to see the validation report that shows CPU usage of your database 24 hours before and after the recommendation has been applied. SQL Database Advisor include un meccanismo di sicurezza che ripristina automaticamente la raccomandazione applicata in caso di rilevamento di una regressione delle prestazioni.SQL Database Advisor has a safety mechanism that automatically reverts the applied recommendation in case a performance regression has been detected.

Raccomandazioni relative alla correzione di problemi di schemaFix schema issues recommendations

Le raccomandazioni relative alla correzione di problemi di schema vengono visualizzate quando il servizio del database SQL rileva un'anomalia nel numero di errori SQL correlati allo schema nel database SQL di Azure.Fix schema issues recommendations appear when the SQL Database service notices an anomaly in the number of schema-related SQL errors happening on your Azure SQL Database. In genere questa indicazione viene visualizzata quando il database rileva più errori correlati allo schema (nome di colonna non valido, nome di oggetto non valido e così via) nell'arco di un'ora.This recommendation typically appears when your database encounters multiple schema-related errors (invalid column name, invalid object name, etc.) within an hour.

I "problemi di schema" rappresentano una classe di errori di sintassi in SQL Server che si verificano quando la definizione della query SQL e la definizione dello schema del database non sono allineate.“Schema issues” are a class of syntax errors in SQL Server that happen when the definition of the SQL query and the definition of the database schema are not aligned. Ad esempio, una delle colonne previste dalla query può essere assente nella tabella di destinazione o viceversa.For example, one of the columns expected by the query may be missing in the target table, or vice versa.

Le raccomandazioni relative alla "correzione di problemi di schema" vengono visualizzate quando il servizio del database SQL di Azure rileva un'anomalia nel numero di errori SQL correlati allo schema nel database SQL di Azure.“Fix schema issue” recommendation appears when Azure SQL Database service notices an anomaly in the number of schema-related SQL errors happening on your Azure SQL Database. La tabella seguente illustra gli errori correlati ai problemi di schema:The following table shows the errors that are related to schema issues:

Codice di errore SQLSQL Error Code MessageMessage
201201 La procedura o funzione '' richiede il parametro '', che non è stato specificato.Procedure or function '' expects parameter '', which was not supplied.
207207 Il nome di colonna '' non è valido.Invalid column name ''.
208208 Il nome di oggetto '' non è valido.Invalid object name ''.
213213 Il nome della colonna o il numero dei valori specificati non corrisponde alla definizione della tabella.Column name or number of supplied values does not match table definition.
28122812 Non è stato possibile trovare la stored procedure ''.Could not find stored procedure ''.
81448144 Numero eccessivo di argomenti specificati per la procedura o la funzione *.Procedure or function * has too many arguments specified.

Passaggi successiviNext steps

Monitorare le raccomandazioni e continuare ad applicarle in modo da migliorare le prestazioni.Monitor your recommendations and continue to apply them to refine performance. I carichi di lavoro dei database sono dinamici e cambiano in modo continuo.Database workloads are dynamic and change continuously. SQL Database Advisor continua a monitorare e offrire raccomandazioni potenzialmente utili per migliorare le prestazioni del database.SQL Database advisor continues to monitor and provide recommendations that can potentially improve your database's performance.