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

Traductions disponibles Traductions disponibles
Numéro d'article: 2801413 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Introduction

À partir de Microsoft SQL Server 2000 Service Pack 3 (SP3), le SQL Server team de processeur de requête a adopté une stratégie de planification de n'importe quel correctif qui pourrait affecter l'exécution d'une requête doivent être contrôlée par un indicateur de trace. À l'exception des correctifs de bogues qui peuvent provoquer des résultats incorrects ou la corruption, ces correctifs sont désactivées par défaut et un indicateur de trace est nécessaire pour activer le correctif. Cette stratégie permet d'éviter des modifications inattendues sur les plans d'exécution des charges de travail existants qui peuvent se produire lors de l'installation d'un correctif ou une mise à jour de sécurité.

Généralement, les indicateurs de trace sont activés au démarrage ou dans une session utilisateur. Toutefois, cela peut avoir un effet inattendu sur certaines requêtes dans une application de base de données existante. Prenons l'exemple d'une application ou une charge de travail qui inclut plusieurs requêtes, et certaines de ces requêtes utilisent un plan d'exécution de requête inefficace est amélioré par l'activation d'un indicateur de trace qui contrôle un correctif correspondant. Toutefois, autres requêtes peuvent être confrontés en un plan d'exécution optimal moins le même indicateur de trace est appliqué. C'est parce que toutes les requêtes qui sont compilés dans l'instance a une incidence sur le choix du plan d'exécution ou de la session lorsque le correspondant indicateur de suivi est activée. En fonction de la requête et les données, modifier les modèles utilisés par l'optimiseur de requêtes peut améliorer et réduire le temps de compilation et de l'efficacité de plan pour des requêtes particulières d'exécution.

Si un indicateur de suivi a une incidence sur n'importe quel plan d'exécution de manière indésirable, mais améliore certains autre plan d'exécution, vous souhaiterez peut-être activer un indicateur de trace correspondant pour qu'une requête particulière. Pour effectuer cette opération en activant l'indicateur de trace dans un droit de lot (en utilisant la commande DBCC TRACEON) avant la requête cible puis la désactivation de la droite de l'indicateur (en utilisant la commande DBCC TRACEOFF) trace après la requête. Toutefois, cela ne peut pas toujours être possible de contrôler le texte des lots Transact-SQL pour les applications existantes. Vous pouvez rencontrer les faibles performances de requête dans une charge de travail existante et à appliquer une modification ayant une incidence sur plan disponible pour une requête sans modifier le texte du lot. Pour cela, à l'aide d'une option au niveau de la requête pour activer un indicateur de trace pour qu'une requête particulière.

Démarrer avec Microsoft SQL Server 2005 Service Pack 2 (SP2) et Microsoft SQL Server 2008, l'option du niveau de la requête « QUERYTRACEON » est disponible. Cette option vous permet de vous pour activer l'indicateur de trace un plan affectant uniquement lors de la compilation d'une requête unique. Comme d'autres options au niveau de la requête, vous pouvez utiliser avec les repères de plan pour faire correspondre le texte d'une requête en cours d'exécution à partir de n'importe quelle session et appliquer automatiquement un indicateur de trace qui affectent le plan lorsque cette requête est en cours de compilation.

Plus d'informations

L'indicateur QUERYTRACEON est disponible sous la forme d'un indicateur de requête qui permet un changement qui affectent le plan de l'optimiseur de requête est contrôlé par un indicateur de trace. L'indicateur QUERYTRACEON est spécifié en tant que partie de la clause OPTION similaire aux autres indicateurs de requête.

Syntaxe

<querytraceon_hint> ::=
       { QUERYTRACEON trace_flag_number }

Arguments

QUERYTRACEON trace_flag_number

Spécifie un plan affectant numéro de l'indicateur qui est activé lors de la compilation de la requête. Les numéros d'indicateur de trace suivants sont pris en charge :
Réduire ce tableauAgrandir ce tableau
Indicateur de trace Article de la Base de connaissances Microsoft.Disponible dans
4199974006Mise à jour cumulative 6 pour SQL Server 2005 Service Pack 3 ;
Mise à jour cumulative 7 pour SQL Server 2008 ;
Mise à jour cumulative 7 pour SQL Server 2008 Service Pack 1 ;
SQL Server 2008 R2 et versions ultérieures.
Tous les indicateurs de trace couverts par 4199974006Mise à jour cumulative 6 pour SQL Server 2005 Service Pack 3 ;
Mise à jour cumulative 7 pour SQL Server 2008 ;
Mise à jour cumulative 7 pour SQL Server 2008 Service Pack 1 ;
SQL Server 2008 R2 et versions ultérieures.
23352413549SQL Server 2005 et les versions ultérieures.
23402009160SQL Server 2005 et les versions ultérieures.
2389, 2390AucunSQL Server 2005 et les versions ultérieures. Un problème connu dans SQL Server 2005 pour les environnements, consultez 929278.
4136980653Mise à jour cumulative 9 pour SQL Server 2005 Service Pack 3 ;
Mise à jour cumulative 7 pour SQL Server 2008 Service Pack 1 ;
2 mise à jour cumulative pour SQL Server 2008 R2 et versions ultérieures.
41372658214Mise à jour cumulative 8 pour SQL Server 2008 Service Pack 2 ;
Mise à jour cumulative 7 pour SQL Server 2008 Service Pack 3 ;
Mise à jour cumulative 5 pour SQL Server 2008 R2 Service Pack 1 ;
À jour cumulative 1 pour SQL Server 2012 et les versions ultérieures.
41382667211Mise à jour cumulative 13 pour SQL Server 2008 R2 ;
Mise à jour cumulative 7 pour SQL Server 2008 R2 Service Pack 1 ;
Mise à jour cumulative 1 pour SQL Server 2008 R2 Service Pack 2 ;
2 mise à jour cumulative pour SQL Server 2012 et les versions ultérieures...


Plan affectant trace les indicateurs suivants sont disponibles dans Microsoft SQL Server 2014 :
Réduire ce tableauAgrandir ce tableau
Indicateur de traceDescription
9481À utiliser lors de l'exécution de SQL Server 2014 avec le niveau de compatibilité de base de données par défaut 120. L'indicateur de trace 9481 force l'optimiseur de requête à utiliser la version 70 (la version de SQL Server 2012) de l'estimation de cardinalité lors de la création du plan de requête.
2312À utiliser lors de l'exécution de SQL Server 2014 avec le niveau de compatibilité de base de données 110, qui est le niveau de compatibilité de SQL Server 2012. L'indicateur de trace 2312 force l'optimiseur de requête à utiliser la version (la version SQL Server 2014) 120 de l'estimateur de cardinalité lors de la création du plan de requête.

Remarques

L'option QUERYTRACEON n'est pas pris en charge pour les indicateurs de trace autre que les indicateurs de trace qui sont répertoriées dans le tableau. Toutefois, cette option retourneront une erreur ou un avertissement si un numéro de l'indicateur non pris en charge est utilisé. Si l'indicateur de trace spécifié n'est pas celui qui a une incidence sur un plan d'exécution, l'option sera ignorée en mode silencieux.

Plus d'un indicateur de suivi peut être spécifié dans la clause OPTION si QUERYTRACEON trace_flag_number est dupliqué avec des numéros d'indicateur de trace différents.

L'option QUERYTRACEON peut être utilisée dans Repères de plan.

Exemples

  • Vous pouvez activer tous les correctifs qui affectent le plan contrôlés par l'indicateur de trace 4199 pour une requête particulière. Par exemple, vous pouvez utiliser la requête suivante :
    SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
  • Vous pouvez activer tous les correctifs qui affectent le plan contrôlées par des indicateurs de trace 4199 et 4137 pour une requête particulière. Par exemple, vous pouvez utiliser la requête suivante :
    SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)

Propriétés

Numéro d'article: 2801413 - Dernière mise à jour: vendredi 25 avril 2014 - Version: 4.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
Mots-clés : 
kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtfr
Traduction automatique
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: 2801413
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com