Activer le plan ayant une incidence sur SQL Server query optimizer comportement qui peuvent être contrôlées par des indicateurs de trace différents sur un niveau de requête spécifique à

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 susceptibles d'affecter l'exécution d'une requête doit ê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 requise 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. Par exemple, considérez une application ou une charge de travail qui inclut plusieurs requêtes, et certains de ces requêtes utilisent un plan d'exécution de requête inefficace qui est amélioré par l'activation d'un indicateur de trace qui contrôle un correctif correspondant. Cependant, les autres requêtes peuvent rencontrer un plan d'exécution moins performante lorsque le même indicateur de trace est appliqué. C'est parce que le choix du plan d'exécution affecte toutes les requêtes qui sont compilés dans l'instance ou de la session lorsque le correspondant des indicateurs de trace est activée. En fonction de la requête et les données, modifier les modèles qui sont utilisés par l'optimiseur de requêtes peut à la fois améliorer et réduire le temps de l'efficacité et la compilation de plan pour des requêtes particulières d'exécution.

Si un indicateur de trace n'importe quel plan d'exécution de requête n'affecte de manière indésirable, mais améliore certains autre plan d'exécution, vous souhaiterez peut-être activer un indicateur de trace correspondante pour qu'une requête particulière. Pour cela, en activant l'indicateur de trace dans un droit de traitement par lots (en utilisant la commande DBCC TRACEON) avant la requête cible et la désactivation de la droite de l'indicateur (en utilisant la commande DBCC TRACEOFF) trace après la requête. Toutefois, cela n'est pas toujours 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 affectant de 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.

À partir de 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 un indicateur de trace plan affectant uniquement lors de la compilation d'une requête unique. Comme les autres options au niveau de la requête, vous pouvez utiliser conjointement avec des 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 lors de la compilation de cette requête.

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é dans le cadre 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 numéro de l'indicateur de trace qui affectent le plan qui est activé pendant 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
4199 dans974006Mise à 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 les versions ultérieures.
Tous les indicateurs de trace couverts par 4199 dans974006Mise à 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 les versions ultérieures.
23352413549SQL Server 2005 et versions ultérieures.
23402009160SQL Server 2005 et versions ultérieures.
2389, 2390AucunSQL Server 2005 et versions ultérieures. Pour un problème connu dans SQL Server 2005 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 cumulatives pour SQL Server 2008 R2 et les 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 ;
1 Mise à jour cumulatives pour SQL Server 2012 et 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 cumulatives pour SQL Server 2012 et versions ultérieures.

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és dans le tableau. Toutefois, cette option retourneront une erreur ou avertissement si vous utilisez un numéro de l'indicateur non pris en charge. 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 trace peut être spécifié dans la clause OPTION si QUERYTRACEON trace_flag_number est dupliqué avec 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 dans 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 les indicateurs de trace 4199 dans 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 5 avril 2013 - Version: 2.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
Mots-clés : 
kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
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