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

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

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
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é par un indicateur de trace. À l'exception des correctifs de bogues qui peuvent provoquer des résultats incorrects ou 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 trace affecte n'importe quel plan d'exécution de manière indésirable, mais il 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 les commandes 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.

Microsoft SQL Server 2005 Service Pack 2 (SP2) et Microsoft SQL Server 2008 de, l'option du niveau de la requête à partir de « 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 plan ayant une incidence sur l'indicateur de trace 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 une modification ayant une incidence sur plan dans 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 activé pendant la compilation de la requête. Les numéros d'indicateur de trace suivants sont pris en charge :
Indicateur de trace Article de la Base de Connaissances MicrosoftDisponible 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 de 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 R2 2008 de SQL Server ;
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 de mise à jour cumulative pour SQL Server 2012 et les versions ultérieures...


Les indicateurs de trace affectant plan suivants sont disponibles dans Microsoft SQL Server 2014 :
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 le 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 120 (la version SQL Server 2014) de l'estimation 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. Cependant, cette option pas renvoie 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 numéros d'indicateur de trace différent.


Exécution d'une requête avec l'option QUERYTRACEON nécessite une appartenance dans le rôle serveur fixé sysadmin.


L'option QUERYTRACEON peut être utilisée dans Repères de plan.
Exemples
  • Vous pouvez activer tous les correctifs affectent des plans 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 affectent des plans 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)

Avertissement : cet article a été traduit automatiquement

Propriétés

ID d'article : 2801413 - Dernière mise à jour : 01/20/2016 11:00:00 - Révision : 5.0

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

  • kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtfr
Commentaires
varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" nz">New Zealand - English
United Kingdom - English
日本 - 日本語
Eesti - Eesti
Norge - Bokmål
United States (English)
香港特別行政區 - 繁體中文
El Salvador - Español
Panamá - Español
Uruguay - Español
대한민국 - 한국어
España - Español
Paraguay - Español
Venezuela - Español
//c1.microsoft.com/c.gif?DI=4050&did=1&t=">='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> >ow.location.protocol) + "//c.microsoft.com/ms.js'><\/script>"); = ("xxxxxxxx-xxxx-4xxx-Rxxx-xxxxxxxxxxxx".replace(/x/g, function () { return Math.floor(Math.random() * 16).toString(16); })).replace("R", (8 | Math.floor(Math.random() * 3)).toString(16)); var m = document.createElement("meta"); m.content = guid; m.name = "ms.dqid"; document.getElementsByTagName("head")[0].appendChild(m);