Recomendaciones de rendimiento de Database Advisor para Azure SQL DatabaseDatabase Advisor performance recommendations for Azure SQL Database

SE APLICA A: Azure SQL Database

Azure SQL Database comprende su aplicación y se adapta a ella.Azure SQL Database learns and adapts with your application. Azure SQL Database tiene varias instancias de Database Advisor que proporcionan recomendaciones personalizadas que permiten maximizar el rendimiento.Azure SQL Database has a number of database advisors that provide customized recommendations that enable you to maximize performance. Estos asesores de bases de datos evalúan y analizan continuamente el historial de uso, y proporcionan recomendaciones basadas en patrones de carga de trabajo que ayudan a mejorar el rendimiento.These database advisors continuously assess and analyze the usage history and provide recommendations based on workload patterns that help improve performance.

Información general sobre rendimientoPerformance overview

La información general sobre el rendimiento ofrece un resumen del rendimiento de la base de datos y le ayuda a ajustar su rendimiento y a solucionar problemas.Performance overview provides a summary of your database performance, and helps you with performance tuning and troubleshooting.

Información general sobre rendimiento de Azure SQL Database

  • El icono de Recomendaciones proporciona un desglose de recomendaciones de ajuste para la base de datos (se muestran las tres primeras recomendaciones si hay más).The Recommendations tile provides a breakdown of tuning recommendations for your database (top three recommendations are shown if there are more). Al hacer clic en este icono, irá a Performance recommendation options (Opciones de recomendaciones de rendimiento).Clicking this tile takes you to Performance recommendation options.
  • El icono de Tuning activity (Actividad de optimización) proporciona un resumen de las acciones de optimización en curso y finalizadas para la base de datos, lo que le brinda una vista rápida del historial de la actividad de optimización.The Tuning activity tile provides a summary of the ongoing and completed tuning actions for your database, giving you a quick view into the history of tuning activity. Si hace clic en este icono irá a la vista completa del historial de optimización de la basa de datos.Clicking this tile takes you to the full tuning history view for your database.
  • El icono Ajuste automático muestra la configuración de ajuste automático de la base de datos (las opciones de ajuste que se aplican automáticamente a la base de datos).The Auto-tuning tile shows the auto-tuning configuration for your database (tuning options that are automatically applied to your database). Al hacer clic en este icono se abre el cuadro de diálogo de configuración de automatización.Clicking this tile opens the automation configuration dialog.
  • El icono de Consultas de bases de datos muestra el resumen del rendimiento de consultas de la base de datos (uso general de DTU y consultas que consumen más recursos).The Database queries tile shows the summary of the query performance for your database (overall DTU usage and top resource consuming queries). Haga clic en este icono para acceder a Información de rendimiento de consultas .Clicking this tile takes you to Query Performance Insight.

Opciones de recomendaciones de rendimientoPerformance recommendation options

Las opciones de recomendaciones de rendimiento disponibles en Azure SQL Database son:Performance recommendation options available in Azure SQL Database are:

Recomendación de rendimientoPerformance recommendation Compatibilidad con bases de datos únicas y bases de datos agrupadasSingle database and pooled database support Compatibilidad de base de datos de instanciaInstance database support
Recomendaciones Crear índice: recomienda la creación de índices que podrían mejorar el rendimiento de la carga de trabajo.Create index recommendations - Recommends creation of indexes that may improve performance of your workload. Yes NoNo
Recomendaciones Quitar índice: recomienda la eliminación diaria de los índices duplicados y redundantes, excepto los índices únicos y los que no se han usado durante mucho tiempo (más de 90 días).Drop index recommendations - Recommends removal of redundant and duplicate indexes daily, except for unique indexes, and indexes that were not used for a long time (>90 days). Tenga en cuenta que esta opción no es compatible con las aplicaciones que usan sugerencias de índice y la conmutación de particiones.Please note that this option is not compatible with applications using partition switching and index hints. No se admite la eliminación de índices sin usar para los niveles de servicio Prémium y Crítico para la empresa.Dropping unused indexes is not supported for Premium and Business Critical service tiers. Yes NoNo
Recomendaciones Parametrizar consultas (versión preliminar) : recomienda la parametrización forzada en aquellos casos en que hay una o varias consultas que se recompilan constantemente, pero acaban con el mismo plan de ejecución de consulta.Parameterize queries recommendations (preview) - Recommends forced parameterization in cases when you have one or more queries that are constantly being recompiled but end up with the same query execution plan. Yes NoNo
Recomendaciones Solucionar problemas de esquema (versión preliminar) : las recomendaciones de corrección de esquema aparecen cuando Azure SQL Database detecta alguna anomalía en el número de errores de SQL relacionados con el esquema que se producen en la base de datos.Fix schema issues recommendations (preview) - Recommendations for schema correction appear when Azure SQL Database notices an anomaly in the number of schema-related SQL errors that are happening on your database. Microsoft está dejando de usar las recomendaciones de corrección de problemas de esquema.Microsoft is currently deprecating "Fix schema issue" recommendations. Yes NoNo

Recomendaciones de rendimiento para Azure SQL Database

Para aplicar las recomendaciones de rendimiento, consulte la sección Aplicación de las recomendaciones.To apply performance recommendations, see applying recommendations. Para ver el estado de las recomendaciones, consulte Supervisión de operaciones.To view the status of recommendations, see Monitoring operations.

También puede encontrar el historial completo de las acciones de ajuste que se aplicaron en el pasado.You can also find complete history of tuning actions that were applied in the past.

Recomendaciones Crear índiceCreate index recommendations

Azure SQL Database supervisa continuamente las consultas que se ejecutan e identifica los índices que podrían mejorar el rendimiento.Azure SQL Database continuously monitors the queries that are running and identifies the indexes that could improve performance. Después de que se sabe con bastante confianza que falta un índice, se crea una nueva recomendación Crear índice.After there's enough confidence that a certain index is missing, a new Create index recommendation is created.

Para generar confianza, Azure SQL Database calcula la ganancia de rendimiento que el índice aportaría a lo largo del tiempo.Azure SQL Database builds confidence by estimating the performance gain the index would bring through time. Según la ganancia de rendimiento estimada, las recomendaciones se clasifican como alta, media o baja.Depending on the estimated performance gain, recommendations are categorized as high, medium, or low.

Los índices creados mediante recomendaciones se marcan siempre como índices auto_created.Indexes that are created by using recommendations are always flagged as auto-created indexes. Para saber cuáles son los índices que se crean automáticamente, vaya a la vista sys.indexes.You can see which indexes are auto-created by looking at the sys.indexes view. Los índices creados de forma automática no bloquean los comandos ALTER/RENAME.Auto-created indexes don't block ALTER/RENAME commands.

Si intenta descartar la columna que tiene un índice creado automáticamente por encima, el comando se pasa.If you try to drop the column that has an auto-created index over it, the command passes. El índice creado automáticamente también se descarta con el comando.The auto-created index is dropped with the command as well. Los índices normales bloquean el comando ALTER/RENAME en las columnas que están indexadas.Regular indexes block the ALTER/RENAME command on columns that are indexed.

Después de aplicar la recomendación Crear índice, Azure SQL Database compara el rendimiento de las consultas con el de línea de base.After the create index recommendation is applied, Azure SQL Database compares the performance of the queries with the baseline performance. Si el nuevo índice mejoró el rendimiento, la recomendación está marcada como correcta y el informe del impacto está disponible.If the new index improved performance, the recommendation is flagged as successful and the impact report is available. Sin embargo, si no lo mejoró, se revierte de forma automática.If the index didn't improve performance, it's automatically reverted. Azure SQL Database emplea este proceso para asegurarse de que las recomendaciones mejoran el rendimiento de la base de datos.Azure SQL Database uses this process to ensure that recommendations improve database performance.

Cualquier recomendación Crear índice tiene una directiva de rechazo que no permite aplicar la recomendación si la utilización de recursos de una base de datos o de un grupo es elevada.Any create index recommendation has a back-off policy that doesn't allow applying the recommendation if the resource usage of a database or pool is high. La directiva de rechazo tiene en cuenta la CPU, la E/S de datos, la E/S de registros y el almacenamiento disponible.The back-off policy takes into account CPU, Data IO, Log IO, and available storage.

Si los valores de estos elementos son superiores al 80 % en los 30 minutos anteriores, la recomendación Crear índice se pospone.If CPU, data IO, or log IO is higher than 80% in the previous 30 minutes, the create index recommendation is postponed. Si el almacenamiento disponible va a ser inferior al 10 % una vez creado el índice, la recomendación entra en un estado de error.If the available storage will be below 10% after the index is created, the recommendation goes into an error state. Si al cabo de un par de días el ajuste automático considera que el índice resultaría beneficioso, el proceso comienza de nuevo.If, after a couple of days, automatic tuning still believes that the index would be beneficial, the process starts again.

Este proceso se repite hasta que haya suficiente almacenamiento disponible para crear un índice o hasta que el índice ya no se considere beneficioso.This process repeats until there's enough available storage to create an index, or until the index isn't seen as beneficial anymore.

Recomendaciones Quitar índiceDrop index recommendations

Además de detectar índices que faltan, Azure SQL Database analiza continuamente el rendimiento de los índices existentes.Besides detecting missing indexes, Azure SQL Database continuously analyzes the performance of existing indexes. Si no se usa un índice, Azure SQL Database recomienza descartarlo.If an index is not used, Azure SQL Database recommends dropping it. Se recomienda quitar un índice en dos casos:Dropping an index is recommended in two cases:

  • El índice es un duplicado de otro (misma columna indexada e incluida, esquema de partición y filtros).The index is a duplicate of another index (same indexed and included column, partition schema, and filters).
  • El índice no se ha usado durante un período prolongado (93 días).The index hasn't been used for a prolonged period (93 days).

Las recomendaciones Quitar índice también llevan a cabo la comprobación después de la implementación.Drop index recommendations also go through the verification after implementation. Si mejora el rendimiento, está disponible el informe del impacto.If the performance improves, the impact report is available. Si se degrada el rendimiento, se revierte la recomendación.If performance degrades, the recommendation is reverted.

Recomendaciones Parametrización de consultas (versión preliminar)Parameterize queries recommendations (preview)

Las recomendaciones de parametrización de consultas aparecen cuando tiene una o varias consultas que se vuelven a compilar continuamente, pero que terminan con el mismo plan de ejecución de consultas.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. Esta condición crea una oportunidad de aplicar la parametrización forzada.This condition creates an opportunity to apply forced parameterization. A su vez, la parametrización forzada permite que se almacenen en caché planes de consulta y se vuelvan a usar en el futuro, lo que mejora el rendimiento y reduce el uso de recursos.Forced parameterization, in turn, allows query plans to be cached and reused in the future, which improves performance and reduces resource usage.

Inicialmente, se deben compilar consultas de evento para generar un plan de ejecución.Every query initially needs to be compiled to generate an execution plan. Cada plan generado se agrega a la caché de planes.Each generated plan is added to the plan cache. Las sucesivas ejecuciones de la misma consulta pueden volver a usar este plan desde la caché, lo que elimina la necesidad de compilación adicional.Subsequent executions of the same query can reuse this plan from the cache, which eliminates the need for additional compilation.

Las consultas con valores sin parámetros pueden llevar a una sobrecarga en el rendimiento porque el plan de ejecución se vuelve a compilar cada vez que los valores sin parámetros son diferentes.Queries with non-parameterized values can lead to performance overhead because the execution plan is recompiled each time the non-parameterized values are different. En muchos casos, las mismas consultas con distintos valores de parámetro generan los mismos planes de ejecución.In many cases, the same queries with different parameter values generate the same execution plans. Estos planes, sin embargo, se agregan aún por separado a la caché de planes.These plans, however, are still separately added to the plan cache.

El proceso de volver a compilar planes de ejecución usa recursos de base de datos, aumenta el tiempo de duración de la consulta y desborda la caché de planes.The process of recompiling execution plans uses database resources, increases the query duration time, and overflows the plan cache. Estos eventos, a su vez, hacen que los planes se expulsen de la caché.These events, in turn, cause plans to be evicted from the cache. Este comportamiento se puede modificar estableciendo la opción de parametrización forzada en la base de datos.This behavior can be altered by setting the forced parameterization option on the database.

Para ayudarlo a estimar el impacto de esta recomendación, se le proporciona una comparación entre el uso real y el previsto de la CPU (como si se aplicase la recomendación).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 were applied). Esta recomendación puede ayudarle a obtener ahorros de CPU.This recommendation can help you gain CPU savings. También puede ayudarle a reducir la duración de la consulta y la sobrecarga de la caché de planes, lo que significa que varios de los planes pueden permanecer en la caché y volverse a utilizar.It can also help you decrease query duration and overhead for the plan cache, which means that more of the plans can stay in the cache and be reused. Para aplicar esta recomendación rápidamente, seleccione el comando Aplicar.You can apply this recommendation quickly by selecting the Apply command.

Después de aplicar esta recomendación, se habilita la parametrización forzada en cuestión de minutos en la base de datos.After you apply this recommendation, it enables forced parameterization within minutes on your database. Se inicia el proceso de supervisión, que tiene una validez de aproximadamente 24 horas.It starts the monitoring process, which lasts for approximately 24 hours. Después de este período, puede ver el informe de validación.After this period, you can see the validation report. Este informe muestra el uso de CPU de la base de datos 24 horas antes y después de haber aplicado la recomendación.This report shows the CPU usage of your database 24 hours before and after the recommendation has been applied. Azure SQL Database Advisor cuenta con un mecanismo de seguridad que revierte automáticamente la recomendación aplicada en caso de detectarse una regresión del rendimiento.Azure SQL Database Advisor has a safety mechanism that automatically reverts the applied recommendation if performance regression has been detected.

Recomendaciones para solucionar problemas del esquema (vista previa)Fix schema issues recommendations (preview)

Importante

Microsoft está dejando de usar las recomendaciones de corrección de problemas de esquema.Microsoft is currently deprecating "Fix schema issue" recommendations. Se recomienda usar Intelligent Insights para supervisar los problemas de rendimiento de la base de datos, incluidos los problemas de esquema que anteriormente trataban las recomendaciones de corrección de problemas de esquema.We recommend that you use Intelligent Insights to monitor your database performance issues, including schema issues that the "Fix schema issue" recommendations previously covered.

Las recomendaciones Solucionar problemas de esquema aparecen cuando Azure SQL Database detecta alguna anomalía en el número de errores de SQL relacionados con el esquema que se producen en la base de datos.Fix schema issues recommendations appear when Azure SQL Database notices an anomaly in the number of schema-related SQL errors that are happening on your database. Esta recomendación suele aparecer cuando la base de datos encuentra varios errores relacionados con el esquema (nombre de columna no válido, nombre de objeto no válido, etc.) en el curso de una hora.This recommendation typically appears when your database encounters multiple schema-related errors (invalid column name, invalid object name, and so on) within an hour.

Los "problemas de esquema" son un tipo de errores de sintaxis."Schema issues" are a class of syntax errors. Se producen cuando la definición de la consulta SQL y la definición del esquema de base de datos no concuerdan.They occur when the definition of the SQL query and the definition of the database schema aren't aligned. Por ejemplo, puede que en la tabla de destino falte una de las columnas que espera la consulta o viceversa.For example, one of the columns that's expected by the query might be missing in the target table or vice-versa.

Las recomendaciones "Solucionar problemas de esquema" aparecen cuando Azure SQL Database detecta alguna anomalía en el número de errores de SQL relacionados con el esquema que se producen en la base de datos.The "Fix schema issue" recommendation appears when Azure SQL Database notices an anomaly in the number of schema-related SQL errors that are happening on your database. En la tabla siguiente se muestran los errores relacionados con los problemas del esquema:The following table shows the errors that are related to schema issues:

Código de error SQLSQL error code MessageMessage
201201 El procedimiento o la función ' ' espera parámetros ' ', que no se han proporcionado.Procedure or function '' expects parameter '', which was not supplied.
207207 Nombre de columna '*' no válido.Invalid column name '*'.
208208 Nombre de objeto '*' no válido.Invalid object name '*'.
213213 El nombre de columna o los valores especificados no corresponden a la definición de la tabla.Column name or number of supplied values does not match table definition.
28122812 No se pudo encontrar el procedimiento almacenado '*'.Could not find stored procedure '*'.
81448144 La función o el procedimiento * tiene demasiados argumentos.Procedure or function * has too many arguments specified.

Aplicaciones personalizadasCustom applications

Los desarrolladores pueden considerar la posibilidad de desarrollar aplicaciones personalizadas con las recomendaciones de rendimiento de Azure SQL Database.Developers might consider developing custom applications using performance recommendations for Azure SQL Database. Todas las recomendaciones que se muestran en el portal para una base de datos están disponibles a través de la API Get-AzSqlDatabaseRecommendedAction.All recommendations listed in the portal for a database can be accessed through Get-AzSqlDatabaseRecommendedAction API.

Pasos siguientesNext steps

  • Para más información sobre cómo realizar un ajuste automático de los índices de base de datos y consultar los planes de ejecución, consulte Ajuste automático de Azure SQL Database.For more information about automatic tuning of database indexes and query execution plans, see Azure SQL Database automatic tuning.
  • Para más información sobre cómo supervisar de forma automática el rendimiento de la base de datos con diagnósticos automatizados y análisis de causa principal de problemas de rendimiento, consulte Azure SQL Intelligent Insights.For more information about automatically monitoring database performance with automated diagnostics and root cause analysis of performance issues, see Azure SQL Intelligent Insights.
  • Consulte Query Performance Insight para más información sobre el impacto en el rendimiento de las principales consultas.See Query Performance Insights to learn about and view the performance impact of your top queries.