KB3189813-Update présente l’argument USE HINT Query Hint dans SQL Server 2016

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 :

  • Retour au début

  • OPTION (RAPIDE N)

  • COMPLÉMENTAIRE

  • ÉCHÉANT

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.

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×