Ajuste automáticoAutomatic tuning

SE APLICA A: síSQL Server síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

El ajuste automático es una característica de base de datos que proporciona información de los posibles problemas de rendimiento de las consultas, recomienda soluciones y corrige automáticamente los problemas identificados.Automatic tuning is a database feature that provides insight into potential query performance problems, recommend solutions, and automatically fix identified problems.

El ajuste automático SQL Server 2017 (14.x)SQL Server 2017 (14.x) le avisa cada vez que se detecta un posible problema de rendimiento y le permite aplicar acciones correctivas o permite el Motor de base de datosDatabase Engine corregir automáticamente problemas de rendimiento.Automatic tuning in SQL Server 2017 (14.x)SQL Server 2017 (14.x) notifies you whenever a potential performance issue is detected, and lets you apply corrective actions, or lets the Motor de base de datosDatabase Engine automatically fix performance problems. El ajuste automático SQL Server 2017 (14.x)SQL Server 2017 (14.x) permite identificar y corregir problemas de rendimiento causados por consultar las regresiones de elección del plan de ejecución.Automatic tuning in SQL Server 2017 (14.x)SQL Server 2017 (14.x) enables you to identify and fix performance issues caused by query execution plan choice regressions. El ajuste automático Base de datos SQL de AzureAzure SQL Database también crea los índices necesarios y quita los índices no usados.Automatic tuning in Base de datos SQL de AzureAzure SQL Database also creates necessary indexes and drops unused indexes. Para obtener más información sobre los planes de ejecución de consultas, vea los planes de ejecución.For more information on query execution plans, see Execution Plans.

El Motor de base de datos de SQL ServerSQL Server Database Engine supervisa las consultas que se ejecutan en la base de datos y automáticamente se mejora el rendimiento de la carga de trabajo.The Motor de base de datos de SQL ServerSQL Server Database Engine monitors the queries that are executed on the database and automatically improves performance of the workload. El Motor de base de datosDatabase Engine tiene un mecanismo de inteligencia integrada que puede ajustar y mejorar el rendimiento de las consultas mediante la adaptación dinámica de la base de datos para la carga de trabajo automáticamente.The Motor de base de datosDatabase Engine has a built-in intelligence mechanism that can automatically tune and improve performance of your queries by dynamically adapting the database to your workload. Hay dos características de ajuste automático que están disponibles:There are two automatic tuning features that are available:

  • Corrección automática de planes identifica las consultas problemáticas planes de ejecución y corrige los problemas de rendimiento de planes de ejecución de la consulta.Automatic plan correction identifies problematic query execution plans and fixes query execution plan performance problems. Se aplica a: SQL ServerSQL Server (a partir de SQL Server 2017 (14.x)SQL Server 2017 (14.x)) y Base de datos SQL de AzureAzure SQL DatabaseApplies to: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and Base de datos SQL de AzureAzure SQL Database
  • Administración automática de índices identifica los índices que se deben agregar en la base de datos y los índices que se deben quitar.Automatic index management identifies indexes that should be added in your database, and indexes that should be removed. Se aplica a: Base de datos SQL de AzureAzure SQL DatabaseApplies to: Base de datos SQL de AzureAzure SQL Database

¿Por qué el ajuste automático?Why automatic tuning?

Tres de las principales tareas de administración de base de datos clásica están supervisando la carga de trabajo, que identifica críticos Transact-SQLTransact-SQL realiza una consulta, los índices que deben ser agregados para mejorar el rendimiento e identificación usa con poca frecuencia.Three of the main tasks in classic database administration are monitoring the workload, identifying critical Transact-SQLTransact-SQL queries, indexes that should be added to improve performance, and identifying rarely used. El Motor de base de datos de SQL ServerSQL Server Database Engine proporciona una visión detallada de las consultas y los índices que necesita para supervisar.The Motor de base de datos de SQL ServerSQL Server Database Engine provides detailed insight into the queries and indexes that you need to monitor. Sin embargo, supervisar constantemente una base de datos es una tarea ardua y tediosa, especialmente al tratar con muchas bases de datos.However, constantly monitoring a database is a hard and tedious task, especially when dealing with many databases. Administrar un gran número de bases de datos podría ser imposible de realizar eficazmente.Managing a huge number of databases might be impossible to do efficiently. En lugar de supervisar y ajustar manualmente la base de datos, puede delegar algunas de la supervisión y optimización de acciones para el Motor de base de datosDatabase Engine mediante la característica de ajuste automático.Instead of monitoring and tuning your database manually, you might consider delegating some of the monitoring and tuning actions to the Motor de base de datosDatabase Engine using automatic tuning feature.

¿Cómo funciona optimización automática?How does automatic tuning work?

El ajuste automático es un proceso de análisis que constantemente aprende sobre las características de la carga de trabajo y la supervisión continua e identificar posibles problemas y mejoras.Automatic tuning is a continuous monitoring and analysis process that constantly learns about the characteristics of your workload and identify potential issues and improvements.

Proceso de ajuste automático

Este proceso permite la base de datos para adaptarse dinámicamente a la carga de trabajo mediante la búsqueda de qué índices y planes pueden mejorar el rendimiento de las cargas de trabajo y qué índices afectan a las cargas de trabajo.This process enables database to dynamically adapt to your workload by finding what indexes and plans might improve performance of your workloads and what indexes affect your workloads. Según estos hallazgos, el ajuste automático aplica a las acciones de optimización que mejoran el rendimiento de la carga de trabajo.Based on these findings, automatic tuning applies tuning actions that improve performance of your workload. Además, base de datos supervisa continuamente el rendimiento después de cualquier cambio realizado por el ajuste automático para asegurarse de que mejora el rendimiento de la carga de trabajo.In addition, database continuously monitors performance after any change made by automatic tuning to ensure that it improves performance of your workload. Cualquier acción que no mejore el rendimiento se revierte automáticamente.Any action that didn't improve performance is automatically reverted. Este proceso de comprobación es una característica clave que garantiza que cualquier cambio realizado por el ajuste automático no disminuya el rendimiento de la carga de trabajo.This verification process is a key feature that ensures that any change made by automatic tuning does not decrease the performance of your workload.

Corrección automática de planesAutomatic plan correction

Corrección automática de planes es una característica de ajuste automático que identifica regresión de elección de planes de ejecución y corregir automáticamente el problema al forzar el último plan correcto conocido.Automatic plan correction is an automatic tuning feature that identifies execution plans choice regression and automatically fix the issue by forcing the last known good plan. Para obtener más información acerca de los planes de ejecución de consulta y el optimizador de consultas, vea el Guía de arquitectura de procesamiento de consultas.For more information about query execution plans and the query optimizer, see the Query Processing Architecture Guide.

¿Qué es la regresión de elección del plan de ejecución?What is execution plan choice regression?

El Motor de base de datos de SQL ServerSQL Server Database Engine pueden usar distintos planes de ejecución para ejecutar el Transact-SQLTransact-SQL las consultas.The Motor de base de datos de SQL ServerSQL Server Database Engine may use different execution plans to execute the Transact-SQLTransact-SQL queries. Los planes de consulta dependen de las estadísticas de índices y otros factores.Query plans depend on the statistics, indexes, and other factors. El plan óptimo que debe usarse para ejecutar algunas Transact-SQLTransact-SQL consulta podría cambiar con el tiempo.The optimal plan that should be used to execute some Transact-SQLTransact-SQL query might be changed over time. En algunos casos, el nuevo plan no podría ser mejor que el anterior y el nuevo plan puede provocar una regresión del rendimiento.In some cases, the new plan might not be better than the previous one, and the new plan might cause a performance regression.

Regresión de elección del plan de ejecución de consultaQuery execution plan choice regression

Cada vez que tenga en cuenta la regresión de elección del plan, debe buscar algunos buenos anteriores plan y forzarlo en lugar de usar una actual sp_query_store_force_plan procedimiento.Whenever you notice the plan choice regression, you should find some previous good plan and force it instead of the current one using sp_query_store_force_plan procedure. Motor de base de datosDatabase Engine en SQL Server 2017 (14.x)SQL Server 2017 (14.x) proporciona información sobre devueltas planes y recomienda acciones correctivas.in SQL Server 2017 (14.x)SQL Server 2017 (14.x) provides information about regressed plans and recommended corrective actions. Además, Motor de base de datosDatabase Engine le permite automatizar este proceso totalmente y permiten Motor de base de datosDatabase Engine corregir cualquier problema detectado relacionados con los cambios del plan.Additionally, Motor de base de datosDatabase Engine enables you to fully automate this process and let Motor de base de datosDatabase Engine fix any problem found related to the plan changes.

Corrección de la elección automática de planesAutomatic plan choice correction

Motor de base de datosDatabase Engine puede cambiar automáticamente para el último plan bueno conocido siempre que se detecte la regresión de elección del plan.can automatically switch to the last known good plan whenever the plan choice regression is detected.

Corrección de elección del plan de ejecución de consultaQuery execution plan choice correction

Motor de base de datosDatabase Engine detecta automáticamente cualquier regresión posible de elección de plan incluido el plan que se debe usar en lugar del plan incorrecto.automatically detects any potential plan choice regression including the plan that should be used instead of the wrong plan. Cuando el Motor de base de datosDatabase Engine aplica el último plan bueno conocido, supervisa automáticamente el rendimiento del plan forzado.When the Motor de base de datosDatabase Engine applies the last known good plan, it automatically monitors the performance of the forced plan. Si el plan forzado no es mejor que el plan con regresión, el nuevo plan será forzado y el Motor de base de datosDatabase Engine compilará un nuevo plan.If the forced plan is not better than the regressed plan, the new plan will be unforced and the Motor de base de datosDatabase Engine will compile a new plan. Si el Motor de base de datosDatabase Engine comprueba que el plan forzado es mejor que el plan con regresión, el plan forzado se conservará si es mejor que el plan con regresión, hasta que se produzca una nueva compilación (por ejemplo, en el próximo estadísticas cambio de esquema o actualización).If the Motor de base de datosDatabase Engine verifies that the forced plan is better than the regressed plan, the forced plan will be retained if it is better than the regressed plan, until a recompile occurs (for example, on next statistics update or schema change).

Nota

Cualquier automática de planes de ejecución forzada no se conservan entre reinicios de la SQL ServerSQL Server instancia.Any execution plans auto forced are not persisted between restarts of the SQL ServerSQL Server instance.

Habilitar la corrección de la elección automática de planesEnabling automatic plan choice correction

Puede habilitar el ajuste automático por base de datos y especificar que se debería forzar el último plan bueno siempre que se detecte alguna regresión de cambio de plan.You can enable automatic tuning per database and specify that last good plan should be forced whenever some plan change regression is detected. El ajuste automático se habilita con el siguiente comando:Automatic tuning is enabled using the following command:

ALTER DATABASE current
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON ); 

Una vez que habilite esta opción, el Motor de base de datosDatabase Engine automáticamente forzará cualquier recomendación donde la ganancia de CPU estimada es superior a 10 segundos, o el número de errores en el nuevo plan es mayor que el número de errores del plan recomendado y compruebe que el plan forzado es mejor que la actual.Once you enable this option, the Motor de base de datosDatabase Engine will automatically force any recommendation where the estimated CPU gain is higher than 10 seconds, or the number of errors in the new plan is higher than the number of errors in the recommended plan, and verify that the forced plan is better than the current one.

Alternativa: corrección elección del plan manualAlternative - manual plan choice correction

Sin el ajuste automático, los usuarios deberán supervisar el sistema de forma periódica y buscar las consultas con regresión.Without automatic tuning, users must periodically monitor system and look for the queries that regressed. Si cualquier plan con regresión, el usuario debería encontrarlo algunos buenos anteriores plan y forzarlo en lugar de usar una actual sp_query_store_force_plan procedimiento.If any plan regressed, user should find some previous good plan and force it instead of the current one using sp_query_store_force_plan procedure. El procedimiento recomendado sería forzar el último buen plan conocido porque los planes anteriores podrían no ser válidos debido a cambios de índice o estadística.The best practice would be to force the last known good plan because older plans might be invalid due to statistic or index changes. El usuario que fuerza el último buen plan conocido debe supervisar el rendimiento de la consulta que se ejecuta con el plan forzado y comprobar dicho plan forzado funciona según lo previsto.The user who forces the last known good plan should monitor performance of the query that is executed using the forced plan and verify that forced plan works as expected. Según los resultados del análisis y supervisión, se debería forzar el plan o el usuario debería encontrarlo alguna otra forma de optimizar la consulta.Depending on the results of monitoring and analysis, plan should be forced or user should find some other way to optimize the query. Los planes forzados manualmente no se deberían forzar para siempre, porque el Motor de base de datosDatabase Engine debería poder aplicar los planes óptimos.Manually forced plans should not be forced forever, because the Motor de base de datosDatabase Engine should be able to apply optimal plans. El usuario o el DBA debería finalmente no forzar el plan mediante sp_query_store_unforce_plan procedimiento y permita que el Motor de base de datosDatabase Engine encontrar el plan óptimo.The user or DBA should eventually unforce the plan using sp_query_store_unforce_plan procedure, and let the Motor de base de datosDatabase Engine find the optimal plan.

Sugerencia

Alternativelly, use el consultas con planes forzada vista consulta Store para localizar y no forzar los planes.Alternativelly, use the Queries With Forced Plans Query Store view to locate and unforce plans.

SQL ServerSQL Server proporciona todas las vistas necesarias y los procedimientos necesarios para supervisar el rendimiento y corregir problemas en la consulta Store.provides all necessary views and procedures required to monitor performance and fix problems in Query Store.

En SQL Server 2016 (13.x)SQL Server 2016 (13.x), puede encontrar las regresiones de elección del plan mediante vistas de consulta Store del sistema.In SQL Server 2016 (13.x)SQL Server 2016 (13.x), you can find plan choice regressions using Query Store system views. En SQL Server 2017 (14.x)SQL Server 2017 (14.x), Motor de base de datosDatabase Engine detecta y muestra los posibles regresiones de elección de plan y las acciones recomendadas que deben aplicarse en el sys.dm_db_tuning_recommendations (Transact-SQL) vista.In SQL Server 2017 (14.x)SQL Server 2017 (14.x), the Motor de base de datosDatabase Engine detects and shows potential plan choice regressions and the recommended actions that should be applied in the sys.dm_db_tuning_recommendations (Transact-SQL) view. La vista muestra información sobre el problema, la importancia del problema y los detalles como la consulta identificada, el identificador del plan con regresión, el identificador del plan que se usó como línea base para la comparación y el Transact-SQLTransact-SQL instrucción que se puede ejecutar para corregir el problema.The view shows information about the problem, the importance of the issue, and details such as the identified query, the ID of the regressed plan, the ID of the plan that was used as baseline for comparison, and the Transact-SQLTransact-SQL statement that can be executed to fix the problem.

typetype descriptiondescription datetimedatetime scorescore detallesdetails ......
FORCE_LAST_GOOD_PLAN Tiempo de CPU ha cambiado de ms de 4 a 14 msCPU time changed from 4 ms to 14 ms 3/17/20173/17/2017 8383 queryId recommendedPlanId regressedPlanId T-SQLqueryId recommendedPlanId regressedPlanId T-SQL
FORCE_LAST_GOOD_PLAN Tiempo de CPU ha cambiado de 37 ms a ms 84CPU time changed from 37 ms to 84 ms 3/16/20173/16/2017 2626 queryId recommendedPlanId regressedPlanId T-SQLqueryId recommendedPlanId regressedPlanId T-SQL

En la lista siguiente se describen algunas columnas de esta vista:Some columns from this view are described in the following list:

  • Tipo de la acción recomendada: FORCE_LAST_GOOD_PLANType of the recommended action - FORCE_LAST_GOOD_PLAN
  • Descripción que contiene información sobre por qué Motor de base de datosDatabase Engine considera que este cambio de plan es una regresión del rendimiento potencialDescription that contains information why Motor de base de datosDatabase Engine thinks that this plan change is a potential performance regression
  • Fecha y hora cuando se detecta la regresión posiblesDatetime when the potential regression is detected
  • Puntuación de esta recomendaciónScore of this recommendation
  • Detalles sobre los problemas, como el identificador del plan detectado, identificador del plan con regresión, identificador del plan que se debería forzar a corregir el problema, Transact-SQLTransact-SQL script que pueda tener aplicado para corregir el problema, etcetera. Los detalles de formato JSONDetails about the issues such as ID of the detected plan, ID of the regressed plan, ID of the plan that should be forced to fix the issue, Transact-SQLTransact-SQL script that might be applied to fix the issue, etc. Details are stored in JSON format

Use la siguiente consulta para obtener un script que corrige el problema y obtener información adicional sobre el estimado obtener:Use the following query to obtain a script that fixes the issue and additional information about the estimated gain:

SELECT reason, score,
      script = JSON_VALUE(details, '$.implementationDetails.script'),
      planForceDetails.*,
      estimated_gain = (regressedPlanExecutionCount + recommendedPlanExecutionCount)
                  * (regressedPlanCpuTimeAverage - recommendedPlanCpuTimeAverage)/1000000,
      error_prone = IIF(regressedPlanErrorCount > recommendedPlanErrorCount, 'YES','NO')
FROM sys.dm_db_tuning_recommendations
CROSS APPLY OPENJSON (Details, '$.planForceDetails')
    WITH (  [query_id] int '$.queryId',
            regressedPlanId int '$.regressedPlanId',
            recommendedPlanId int '$.recommendedPlanId',
            regressedPlanErrorCount int,
            recommendedPlanErrorCount int,
            regressedPlanExecutionCount int,
            regressedPlanCpuTimeAverage float,
            recommendedPlanExecutionCount int,
            recommendedPlanCpuTimeAverage float
          ) AS planForceDetails;

El conjunto de resultados es el siguiente.Here is the result set.

reasonreason scorescore scriptscript consulta_Id.query_id plan actual_Id.current plan_id recomienda plan_Id.recommended plan_id Estimado_obtenerestimated_gain error_propensos aerror_prone
Cambiado de 3 ms a 46 ms de tiempo de CPUCPU time changed from 3 ms to 46 ms 3636 EXEC sp_consulta_almacenar_forzar_plan de 12, 17;EXEC sp_query_store_force_plan 12, 17; 1212 2828 1717 11.5911.59 00

estimated_gain representa el número estimado de segundos que se guardarán si el plan recomendado se ejecutaría en lugar del plan actual.estimated_gain represents the estimated number of seconds that would be saved if the recommended plan would be executed instead of the current plan. Se debe forzar que el plan recomendado en lugar del plan actual si el aumento es mayor que 10 segundos.The recommended plan should be forced instead of the current plan if the gain is greater than 10 seconds. Si hay más errores (por ejemplo, los tiempos de espera o ejecuciones anuladas) en el plan actual a la recomendada en el plan de la columna error_prone se establecería en el valor YES.If there are more errors (for example, time-outs or aborted executions) in the current plan than in the recommended plan, the column error_prone would be set to the value YES. Plan propensas a errores es otro motivo por qué se debería forzar el plan recomendado en lugar de la actual.Error prone plan is another reason why the recommended plan should be forced instead of the current one.

Aunque Motor de base de datosDatabase Engine proporciona toda la información necesaria para identificar las regresiones de elección del plan; una supervisión continua y corregir problemas de rendimiento puede ser un proceso tedioso.Although Motor de base de datosDatabase Engine provides all information required to identify plan choice regressions; continuous monitoring and fixing performance issues might be a tedious process. El ajuste automático facilita este proceso.Automatic tuning makes this process much easier.

Nota

Datos en la DMV sys.dm_db_tuning_recommendations no se conservan entre reinicios de la SQL ServerSQL Server instancia.Data in the sys.dm_db_tuning_recommendations DMV is not persisted between restarts of the SQL ServerSQL Server instance.

Administración automática de índicesAutomatic index management

En Base de datos SQL de AzureAzure SQL Database, administración de índices es fácil porque Base de datos SQL de AzureAzure SQL Database aprende sobre la carga de trabajo y se asegura de que los datos se indizan siempre de forma óptima.In Base de datos SQL de AzureAzure SQL Database, index management is easy because Base de datos SQL de AzureAzure SQL Database learns about your workload and ensures that your data is always optimally indexed. Diseño adecuado de índices es fundamental para un rendimiento óptimo de la carga de trabajo y administración automática de índices puede ayudar a optimizar los índices.Proper index design is crucial for optimal performance of your workload, and automatic index management can help you optimize your indexes. Administración automática de índices puede corregir problemas de rendimiento en las bases de datos indexadas incorrectamente, o se mantienen y mejore los índices en el esquema de base de datos existente.Automatic index management can either fix performance issues in incorrectly indexed databases, or maintain and improve indexes on the existing database schema. El ajuste automático Base de datos SQL de AzureAzure SQL Database realiza las acciones siguientes:Automatic tuning in Base de datos SQL de AzureAzure SQL Database performs the following actions:

  • Identifica los índices que podrían mejorar el rendimiento de su Transact-SQLTransact-SQL consultas que leen datos de las tablas.Identifies indexes that could improve performance of your Transact-SQLTransact-SQL queries that read data from the tables.
  • Identifica los índices redundantes o que no se usaron en el período de tiempo que se va a quitar.Identifies the redundant indexes or indexes that were not used in longer period of time that could be removed. Quitar índices innecesarios mejora el rendimiento de las consultas que actualizan los datos en tablas.Removing unnecessary indexes improves performance of the queries that update data in tables.

¿Por qué necesita administración de índices?Why do you need index management?

Los índices aceleran algunas de las consultas que leen datos de las tablas; Sin embargo, puede ralentizar las consultas que actualizan los datos.Indexes speed up some of your queries that read data from the tables; however, they can slow down the queries that update data. Debe analizar cuidadosamente cuándo se debe crear un índice y qué columnas debe incluir en el índice.You need to carefully analyze when to create an index and what columns you need to include in the index. Algunos índices que no sean necesarios más tarde.Some indexes might not be needed after some time. Por lo tanto, deberá identificar y quitar los índices que no reporten ventajas periódicamente.Therefore, you would need to periodically identify and drop the indexes that do not bring any benefits. Si omite los índices no usados, el rendimiento de las consultas que actualizan datos podría reducirse sin ninguna ventaja para las consultas que leen los datos.If you ignore the unused indexes, performance of the queries that update data would be decreased without any benefit on the queries that read data. Los índices no usados también afectan al rendimiento general del sistema porque las actualizaciones adicionales necesitan tareas de registro innecesarias.Unused indexes also affect overall performance of the system because additional updates require unnecessary logging.

Encontrar el conjunto óptimo de índices que mejoren el rendimiento de las consultas que leen datos de las tablas y tener un impacto mínimo en las actualizaciones podría requerir un análisis complejo y continuado.Finding the optimal set of indexes that improve performance of the queries that read data from your tables and have minimal impact on updates might require continuous and complex analysis.

Base de datos SQL de AzureAzure SQL Database usos de inteligencia integrada y reglas avanzadas que analizar las consultas, identificar los índices que serían óptimos para las cargas de trabajo actuales y podrían quitarse los índices.uses built-in intelligence and advanced rules that analyze your queries, identify indexes that would be optimal for your current workloads, and the indexes might be removed. La base de datos de SQL Azure garantiza que tiene un conjunto mínimo necesario de índices para optimizar las consultas que leen datos, con menor impacto en las otras consultas.Azure SQL Database ensures that you have a minimal necessary set of indexes that optimize the queries that read data, with the minimized impact on the other queries.

Administración automática de índicesAutomatic index management

Además de la detección, Base de datos SQL de AzureAzure SQL Database puede aplicar automáticamente recomendaciones identificadas.In addition to detection, Base de datos SQL de AzureAzure SQL Database can automatically apply identified recommendations. Si encuentra que las reglas integradas mejoran el rendimiento de la base de datos, podría dejar que Base de datos SQL de AzureAzure SQL Database administre automáticamente los índices.If you find that the built-in rules improve the performance of your database, you might let Base de datos SQL de AzureAzure SQL Database automatically manage your indexes.

Para habilitar el ajuste automático Base de datos SQL de AzureAzure SQL Database y permitir que la característica de ajuste automático administrar la carga de trabajo por completo, consulte habilitar el ajuste automático en Azure SQL Database mediante Azure portal.To enable automatic tuning in Base de datos SQL de AzureAzure SQL Database and allow the automatic tuning feature to fully manage your workload, see Enable automatic tuning in Azure SQL Database using Azure portal.

Cuando el Base de datos SQL de AzureAzure SQL Database se aplica una recomendación de la instrucción CREATE INDEX o DROP INDEX, supervisa automáticamente el rendimiento de las consultas que se ven afectados por el índice.When the Base de datos SQL de AzureAzure SQL Database applies a CREATE INDEX or DROP INDEX recommendation, it automatically monitors the performance of the queries that are affected by the index. Se conservarán el nuevo índice solo si se han mejorado el rendimiento de las consultas afectadas.New index will be retained only if performances of the affected queries are improved. El índice eliminado se automáticamente volverá a crear si hay algunas consultas que se ejecutan más lentamente debido a la ausencia del índice.Dropped index will be automatically re-created if there are some queries that run slower due to the absence of the index.

Consideraciones sobre la administración automática de índicesAutomatic index management considerations

Acciones necesarias para crear los índices necesarios en Base de datos SQL de AzureAzure SQL Database podría consumir recursos y afectar temporalmente al rendimiento de la carga de trabajo.Actions required to create necessary indexes in Base de datos SQL de AzureAzure SQL Database might consume resources and temporally affect workload performance. Para minimizar el impacto de la creación de índices en el rendimiento de carga de trabajo, Base de datos SQL de AzureAzure SQL Database busca el período de tiempo adecuado para cualquier operación de administración de índice.To minimize the impact of index creation on workload performance, Base de datos SQL de AzureAzure SQL Database finds the appropriate time window for any index management operation. Acción de ajuste se pospuso si la base de datos necesita recursos para ejecutar la carga de trabajo y se inicia cuando la base de datos tiene suficientes recursos no utilizados que se pueden usar para la tarea de mantenimiento.Tuning action is postponed if the database needs resources to execute your workload, and started when the database has enough unused resources that can be used for the maintenance task. Una característica importante de la administración automática de índices es una comprobación de las acciones.One important feature in automatic index management is a verification of the actions. Cuando Base de datos SQL de AzureAzure SQL Database crea o quita el índice, un proceso de supervisión analiza el rendimiento de la carga de trabajo para comprobar que la acción se ha mejorado el rendimiento.When Base de datos SQL de AzureAzure SQL Database creates or drops index, a monitoring process analyzes performance of your workload to verify that the action improved the performance. Si no ha reportado una mejora considerable - inmediatamente se revierte la acción.If it didn't bring significant improvement - the action is immediately reverted. De este modo, Base de datos SQL de AzureAzure SQL Database garantiza que las acciones automáticas no afectar negativamente al rendimiento de la carga de trabajo.This way, Base de datos SQL de AzureAzure SQL Database ensures that automatic actions do not negatively impact performance of your workload. Los índices creados por el ajuste automático son transparentes para la operación de mantenimiento en el esquema subyacente.Indexes created by automatic tuning are transparent for the maintenance operation on the underlying schema. Los cambios de esquema, como quitar o cambiar el nombre de columnas no estén bloqueados por la presencia de índices creados automáticamente.Schema changes such as dropping or renaming columns are not blocked by the presence of automatically created indexes. Los índices creados automáticamente por Base de datos SQL de AzureAzure SQL Database inmediatamente cuando se quitan relacionados con la tabla o columnas se quita.Indexes that are automatically created by Base de datos SQL de AzureAzure SQL Database are immediately dropped when related table or columns is dropped.

Alternativa: la administración manual de índicesAlternative - manual index management

Sin administración automática de índices, usuario tendría que consultar manualmente sys.dm_db_missing_index_details (Transact-SQL) ver o utilizar el informe panel de rendimiento en Management StudioManagement Studio a los índices de búsqueda que podrían mejorar el rendimiento, creación de índices mediante los detalles proporcionados en esta vista y supervisar el rendimiento de la consulta manualmente.Without automatic index management, user would need to manually query sys.dm_db_missing_index_details (Transact-SQL) view or use the Performance Dashboard report in Management StudioManagement Studio to find indexes that might improve performance, create indexes using the details provided in this view, and manually monitor performance of the query. Para encontrar los índices que se deben quitar, los usuarios deben supervisar las estadísticas de uso operativo de los índices a los índices de búsqueda que se usa con poca frecuencia.In order to find the indexes that should be dropped, users should monitor operational usage statistics of the indexes to find rarely used indexes.

Base de datos SQL de AzureAzure SQL Database simplifica este proceso.simplifies this process. Base de datos SQL de AzureAzure SQL Database analiza la carga de trabajo, identifica las consultas que podrían ejecutarse más rápido con un nuevo índice y se identifican los índices no usados o duplicados.analyzes your workload, identifies the queries that could be executed faster with a new index, and identifies unused or duplicated indexes. Obtener más información sobre la identificación de los índices que deben cambiarse buscar recomendaciones de índices en Azure portal.Find more information about identification of indexes that should be changed at Find index recommendations in Azure portal.

Vea tambiénSee Also

ALTER DATABASE SET AUTOMATIC_TUNING (Transact-SQL) ALTER DATABASE SET AUTOMATIC_TUNING (Transact-SQL)
sys.database_automatic_tuning_options (Transact-SQL)sys.database_automatic_tuning_options (Transact-SQL)
sys.dm_db_tuning_recommendations (Transact-SQL) sys.dm_db_tuning_recommendations (Transact-SQL)
sys.dm_db_missing_index_details (Transact-SQL) sys.dm_db_missing_index_details (Transact-SQL)
sp_query_store_force_plan (Transact-SQL) sp_query_store_force_plan (Transact-SQL)
sp_query_store_unforce_plan (Transact-SQL) sp_query_store_unforce_plan (Transact-SQL)
sys.database_query_store_options (Transact-SQL) sys.database_query_store_options (Transact-SQL)
Funciones JSON JSON functions
Planes de ejecución Execution Plans
Supervisión y optimización del rendimiento Monitor and Tune for Performance
Herramientas de supervisión y optimización del rendimiento Performance Monitoring and Tuning Tools
Supervisar el rendimiento mediante el Almacén de consultasMonitoring Performance By Using the Query Store
Asistente para optimización de consultasQuery Tuning Assistant