Résumé
Cette mise à jour introduit un nouvel argument d’indicateur de requête, use Hint, qui vous permet de piloter l’optimiseur de requête sans informations d’identification élevées ou sans être membre du rôle serveur sysadmin. La syntaxe de ce nouvel indicateur de requête ressemble à ce qui suit :
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
Cette mise à jour inclut également les options Hint suivantes qui peuvent être utilisées avec l’argument Hint .
Elle |
Indicateur de suivi équivalent |
Description |
S’applique à |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
Implique que SQL Server génère un plan de requête en utilisant l’hypothèse de confinement simple au lieu de l’hypothèse de confinement de base par défaut pour les jointures, sous l’optimiseur de requête. Modèle d’estimation de cardinal de SQL Server 2014 (12. x) ou version ultérieure. |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
Force SQL Server à générer un plan à l’aide de la sélectivité minimale lors de l’estimation et des prédicats de filtres à utiliser pour la corrélation. Ce nom Hint est parallèle à indicateur de suivi 4137 s’il est utilisé avec le modèle d’estimation de cardinal de SQL server 2012 (11. x) et les versions antérieures, et a un effet similaire lorsque l’indicateur de suivi 9471 est utilisé avec le modèle d’estimation de cardinal de SQL Server 2014 (12. x) ou version ultérieure. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
Désactive les jointures adaptatives en mode batch. |
à partir de SQL Server 2017 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
Désactive le mode de traitement des commentaires d’allocation de mémoire en mode batch. |
à partir de SQL Server 2017 |
|
DISABLE_DEFERRED_COMPILATION_TV |
Désactive la compilation différée des variables de table. |
à partir de SQL Server 2019 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
Désactive l’exécution entrelacée pour les fonctions table à plusieurs instructions. |
à partir de SQL Server 2017 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
Prescrit au processeur de requêtes de ne pas utiliser d’opérations de tri (Tri par lot) pour les jointures de boucle imbriquées optimisées lors de la création d’un plan de requête. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
Entraîne la génération par SQL Server d’une offre qui n’utilise pas de modifications de l’objectif de ligne avec des requêtes qui contiennent les mots clés suivants :
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
Demande à l’optimiseur de requête d’utiliser la distribution de données moyenne lors de la compilation d’une requête avec un ou plusieurs paramètres. Cette instruction rend le plan de requête indépendant de la valeur de paramètre utilisée pour la première fois lors de la compilation de la requête. Utilisez cette astuce pour remplacer le paramètre de configuration de l’étendue de la base de données PARAMETER_SNIFFING = désactivé. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
Désactive le mode de ligne commentaires d’allocation de mémoire. |
à partir de SQL Server 2019 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
Désactive le mode inlining de FDU scalaire. |
à partir de SQL Server 2019 |
|
DISALLOW_BATCH_MODE |
Désactive l’exécution du mode batch. |
à partir de SQL Server 2019 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
Autorise la génération automatique de statistiques rapides (modification d’histogramme) pour toutes les colonnes d’index de début pour lesquelles une estimation de cardinalité est nécessaire. L’histogramme utilisé pour évaluer la cardinalité sera ajusté au moment de la compilation de la requête afin de prendre en compte la valeur maximale ou minimale réelle de cette colonne. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
Active les correctifs de l’optimiseur de requête (modifications publiée dans les mises à jour cumulatives SQL Server et les service packs). Utilisez cette astuce pour remplacer Paramètre de configuration de l’étendue de la base de données QUERY_OPTIMIZER_HOTFIXES = activé. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
Force l’optimiseur de requête à utiliser Modèle d’estimation de cardinal qui correspond au niveau de compatibilité de base de données actuel. Utilisez cette astuce pour remplacerParamètre de configuration de l’étendue de la base de données LEGACY_CARDINALITY_ESTIMATION = activé. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
Force l’optimiseur de requête à utiliser Modèle d’estimation de cardinal de SQL Server 2012 (11. x) et versions antérieures. Utilisez cette astuce pour remplacer le paramètre de configuration de l’étendue de la base de données LEGACY_CARDINALITY_ESTIMATION = activé. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
Force le comportement de l’optimiseur de requête à un niveau de requête. Ce comportement se produit comme si la requête était compilée avec le niveau de compatibilité de base de données n, où n est un niveau de compatibilité de base de données pris en charge. Reportez-vous àsys.dm_exec_valid_use_hints pour obtenir la liste des valeurs actuellement prises en charge pour n. |
à partir de SQL Server 2017 (14. x) CU10 |
Pour plus d’informations, consultez la section Hints (Transact-SQL)-requête.
Informations supplémentaires
Cette mise à jour est incluse dans Service Pack 1 pour SQL Server 2016.
Chaque nouvelle build pour SQL Server 2016 contient tous les correctifs et les correctifs de sécurité inclus dans la build précédente. Nous vous recommandons d’installer la dernière version pour SQL Server 2016.
Les scénarios dans lesquels le comportement de l’optimiseur de requête SQL Server (QO) doit être considéré comme une information courante et sont généralement résolus à l’aide de plusieurs indicateurs de trace (documentés et non documentés). Toutefois, lorsque les indicateurs de suivi sont définis globalement, ils peuvent avoir un effet néfaste sur d’autres charges de travail. Par ailleurs, l’activation de ces applications par session n’est pas pratique avec les applications existantes, et leur activation par requête avec l' option QUERYTRACEON nécessite une appartenance au rôle serveur fixe sysadmin. (Même si vous pouvez contourner ce comportement à l’aide d’un guide de plan ou d’une procédure stockée, les informations d’identification élevées sont toujours nécessaires.) Les indicateurs de trace permettent de définir temporairement des caractéristiques de serveur spécifiques ou de supprimer un comportement particulier, car ils peuvent être difficiles à gérer et à comprendre. Pour plus d’informations sur les indicateurs de suivi, voir la rubrique relative aux indicateurs de trace (Transact-SQL) sur le site Web Microsoft Developer Network (MSDN).
Références
Apprenez-en davantage sur la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.