Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Hypothèse de relation contenant-contenu de jointure dans la nouvelle estimation de cardinalité dégrade les performances de requête dans SQL Server 2014 et versions ultérieures

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 3189675
Symptômes
Considérez le scénario suivant :

  • Vous utilisez Microsoft SQL Server 2014 ou une version ultérieure.
  • Vous exécutez une requête contenant des jointures et non joints filtrer des prédicats.
  • Vous compilez la requête à l’aide du nouveau Dispositif d’estimation de cardinalité (CE nouveau).
Dans ce scénario, vous rencontrez une baisse des performances de requête.

Ce problème ne se produit pas si vous compilez la requête à l’aide de CE hérité.
Résolution
Dans 2014 de SQL Server et les versions ultérieures, vous pouvez utiliser l' indicateur de trace 9476 pour forcer CE nouveau à utiliser laRelation contenant-contenu simple hypothèse au lieu de la valeur par défaut Confinement de basehypothèse. » (Voir la «Plus d'informations« section.)

L’activation de cet indicateur de suivi peut améliorer les choix de plan de requête sans avoir à restaurer totalement le modèle hérité CE si les conditions suivantes sont remplies :

  • Vous rencontrez un choix de plan de requête non optimaux qui entraîne une dégradation des performances globales pour les requêtes contenant des jointures et non joints filtrer des prédicats.
  • Vous pouvez vérifier une inexactitude significative dans une estimation « joindre la cardinalité » (autrement dit, le réelle par rapport à l’estimation du nombre de lignes qui diffèrent considérablement).
  • Ce compte n’existe pas lors de la compilation des requêtes à l’aide de CE hérité.

Vous pouvez activer cet indicateur de trace globalement, au niveau de la session, ou au niveau de la requête.

Remarque : L’utilisation incorrecte de drapeaux de trace peut dégrader les performances de votre charge de travail. Pour plus d’informations, consultez la section « Introduction » de l’article suivant de la Base de connaissances Microsoft :

2801413 Activer le plan affectant SQL Server requête optimiseur comportement qui peut être contrôlé par des indicateurs de trace différent sur un niveau de requête spécifiques

Plus d'informations
2014 de SQL Server, a introduit la nouvelle estimation de cardinalité pour le niveau de compatibilité de base de données 120 et supérieur. CE nouveau remplace plusieurs hypothèses CE hérités dans le modèle qui est utilisé par l’optimiseur de requête lorsqu’il estimations de cardinalité pour les différents opérateurs et prédicats.

Une de ces modifications est liée à rejoindre l’hypothèse de la relation contenant-contenu.

Le modèle hérité CE suppose que les utilisateurs recherchent toujours des données. Cela signifie que, pour un prédicat de jointure qui implique une opération équijointure pour deux tables, les colonnes jointes existent sur les deux côtés de la jointure. En présence de prédicats de filtre de jointure non supplémentaire par rapport à la table de jointure, CE Legacy suppose un niveau de corrélation pour les prédicats de jointure et les prédicats de filtre de jointure non. Cela implique de corrélation est appelée relation contenant-contenu Simple.

Vous pouvez également CE nouveau utilise contenant-contenu de la Base de la corrélation. Le modèle de CE nouveau suppose que les utilisateurs peuvent rechercher les données qui n’existent pas. Cela signifie que les prédicats de filtre sur les tables distinctes peuvent mettre en corrélation avec l’autre. Par conséquent, nous utilisons une approche probabiliste.

Pour de nombreux scénarios pratiques, à l’aide de l’hypothèse de confinement de Base crée une meilleure estimation. À son tour, crée une requête plus efficace choix du plan. Toutefois, dans certains cas, à l’aide de l’hypothèse de relation contenant-contenu Simple donnera de meilleures résultats. Si cela se produit, vous pouvez rencontrer des choix de plan de requête moins efficace lorsque vous utilisez CE nouveau place CE hérité.

Propriétés

ID d'article : 3189675 - Dernière mise à jour : 09/07/2016 22:07:00 - Révision : 1.0

Microsoft SQL Server 2016 Enterprise, Microsoft SQL Server 2016 Developer, Microsoft SQL Server 2016 Web, Microsoft SQL Server 2016 Standard, Microsoft SQL Server 2016 Express, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Express

  • kbmt KB3189675 KbMtfr
Commentaires
cript type='text/javascript' src='" + (window.location.protocol) + "//c.microsoft.com/ms.js'><\/script>");