Resumen
Esta actualización introduce un nuevo argumento de sugerencia de consulta, usa la sugerencia, que le permite controlar el optimizador de consultas sin credenciales elevadas o sin ser miembro del rol de servidor sysadmin. La sintaxis de esta sugerencia de consulta nueva es similar a la siguiente:
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
Esta actualización también presenta las siguientes opciones de sugerencia que se pueden usar con el argumento de sugerencia use .
Alternativa |
Marca de seguimiento equivalente |
Descripción |
Se aplica a |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Hace que SQL Server genere un plan de consultas mediante la hipótesis de contención simple en lugar de la hipótesis de contención básica predeterminada para las combinaciones, en el optimizador de consultas Modelo de estimación de cardinalidad de SQL Server 2014 (12. x) o posterior. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Hace que SQL Server genere un plan con la selectividad mínima al estimar y predicados para los filtros para tener en cuenta la correlación. Este nombre de sugerencia es paralelo a indicador de traza 4137 cuando se usa con el modelo de estimación de cardinalidad de SQL Server 2012 (11. x) y versiones anteriores, y tiene un efecto similar cuando el indicador de seguimiento 9471 se usa con el modelo de estimación de cardinalidad de SQL Server 2014 (12. x) o posterior. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Deshabilita las combinaciones adaptables del modo por lotes. |
iniciar en SQL Server 2017 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Deshabilita los comentarios de la concesión de memoria en modo por lotes. |
iniciar en SQL Server 2017 |
|
DISABLE_DEFERRED_COMPILATION_TV |
Deshabilita la compilación diferida de la tabla. |
iniciar en SQL Server 2019 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Deshabilita la ejecución intercalada para funciones con valores de tabla de varias instrucciones. |
iniciar en SQL Server 2017 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Indica al procesador de consultas que no use una operación de ordenación (ordenación por lotes) para las combinaciones de bucles anidados optimizadas al generar un plan de consultas. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Hace que SQL Server genere un plan que no use modificaciones de objetivos de fila con consultas que contengan estas palabras clave:
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Indica al optimizador de consultas que use la distribución de datos promedio al compilar una consulta con uno o más parámetros. Esta instrucción hace que el plan de consulta sea independiente del valor del parámetro que se usó por primera vez cuando se compiló la consulta. Use esta sugerencia para invalidar la configuración de ámbito de la base de datos PARAMETER_SNIFFING = OFF. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Deshabilita el modo de fila que concede Comentarios. |
iniciar en SQL Server 2019 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Deshabilita la inclusión de UDF escalar. |
iniciar en SQL Server 2019 |
|
DISALLOW_BATCH_MODE |
Deshabilita la ejecución en modo por lotes. |
iniciar en SQL Server 2019 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Habilita las estadísticas rápidas generadas automáticamente (enmienda de histograma) para cualquier columna de índice inicial para la que se necesita la estimación de cardinalidad. El histograma que se usa para calcular la cardinalidad se ajustará durante el tiempo de compilación de la consulta para tener en cuenta el valor máximo o mínimo real de esta columna. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
Habilita las revisiones del optimizador de consultas (cambios publicados en las actualizaciones acumulativas y los Service Packs de SQL Server). Use esta sugerencia para reemplazar Configuración de ámbito de base de datos QUERY_OPTIMIZER_HOTFIXES = on. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Fuerza el uso del optimizador de consultas Modelo de estimación de cardinalidad que corresponde al nivel de compatibilidad de la base de datos actual. Use esta sugerencia para reemplazar Configuración de ámbito de base de datos LEGACY_CARDINALITY_ESTIMATION = activado. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Fuerza el uso del optimizador de consultas Modelo de estimación de cardinalidad de SQL Server 2012 (11. x) y versiones anteriores. Use esta sugerencia para invalidar la configuración de ámbito de la base de datos LEGACY_CARDINALITY_ESTIMATION = on. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Fuerza el comportamiento del optimizador de consultas en un nivel de consulta. Este comportamiento se produce como si la consulta se compiló con el nivel de compatibilidad de la base de datos n, donde n es un nivel de compatibilidad de base de datos compatible. Hacer referencia asys.dm_exec_valid_use_hints para obtener una lista de los valores admitidos actualmente para n. |
a partir de SQL Server 2017 (14. x) CU10 |
Para obtener más información, consulte hints (Transact-SQL): query.
Más información
Esta actualización está incluida en el Service Pack 1 para SQL Server 2016.
Cada compilación nueva para SQL Server 2016 contiene todas las revisiones y todas las revisiones de seguridad incluidas en la compilación anterior. Le recomendamos que instale la compilación más reciente para SQL Server 2016.
Los escenarios en los que se debe sugerir el comportamiento de optimizador de consultas de SQL Server (QO) son bastante comunes y, tradicionalmente, se solucionan mediante varios indicadores de traza (documentados y sin documentar). Sin embargo, cuando las marcas de seguimiento se establecen globalmente, pueden tener un efecto adverso en otras cargas de trabajo. Además, habilitarlos por sesión no es práctico con las aplicaciones existentes, y habilitarlos por consulta con la opción QUERYTRACEON requiere ser miembro del rol fijo de servidor sysadmin. (Aunque puede evitar este comportamiento utilizando una guía de plan o un procedimiento almacenado, aún se necesitan credenciales con privilegios elevados). Los indicadores de traza se usan para establecer temporalmente características específicas del servidor o para desactivar un comportamiento determinado, por lo que pueden ser difíciles de administrar y comprender. Para obtener información sobre las marcas de seguimiento, vea el tema de indicadores de seguimiento (Transact-SQL) en el sitio web de Microsoft Developer Network (MSDN).
Referencias
Obtenga más información sobre la terminología que Microsoft usa para describir las actualizaciones de software.