KB974006-SQL Server-4199 indicateur de suivi de la requête Hotfix

S’applique à : Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Enterprise EditionMicrosoft SQL Server 2005 Standard X64 Edition

INTRODUCTION


Les versions de Microsoft SQL Server suivantes ultérieures à SQL Server 2000 Service Pack 3 (SP3) disposant la plupart des correctifs dans l’optimiseur de requête dans un état désactivé par défaut afin d’éviter que des clients de production existants ne puissent voir les changements de plan prévus qui pourraient entraîner des régressions de performances. Tout d’abord, chaque correctif a été remis sous un indicateur de suivi distinct. Par la suite, cet exercice a été modifié de telle sorte que la plupart des indicateurs étaient combinés sous un seul indicateur de suivi (4199). Cette nouvelle expérience est engagée sur plusieurs versions à partir des mises à jour suivantes :
  • Mise à jour cumulative 6 SQL Server 2005 Service Pack 3 (SP3) 6
  • Package de mise à jour cumulative 2 SQL Server 2008 Service Pack 1 (SP1)
  • SQL Server 2008 R2 (RTM)
L’indicateur de suivi 4199 a été utilisé pour collecter les correctifs destinés à être regroupés par défaut dans une version ultérieure, tandis que d’autres indicateurs de trace étaient utilisés dans les situations dans lesquelles aucun correctif n’est destiné à être utilisé par défaut dans le formulaire actuel. À partir de la version RTM de SQL Server 2016, le paramètre de COMPATIBILITY_LEVEL de base de données sera utilisé pour activer l’indicateur de suivi 4199 sur les correctifs liés par défaut. Cet article décrit la mécanique et la stratégie de gestion des correctifs pour SQL Server 2016 et les versions ultérieures.

Informations supplémentaires


Dans SQL Server 2016, l’indicateur de suivi 4199 correctifs effectués dans les versions précédentes de SQL Server sera activé sous base de données COMPATIBILITY_LEVEL 130 sans indicateur de suivi 4199 activé. L’indicateur de suivi 4199 sera utilisé pour libérer les prochains correctifs SQL Server 2016 pour les bases de données à l’aide du niveau de compatibilité 130. Dans la mesure où l’indicateur de suivi 4199 est recommandé uniquement pour les clients qui présentent des problèmes de performances spécifiques, les clients sont invités à supprimer l’indicateur de suivi 4199 après avoir migré leurs bases de données vers le niveau de compatibilité le plus récent, car l’indicateur de suivi 4199 sera réutilisé pour les futurs correctifs qui peuvent ne pas s’appliquer à votre application et provoquer des modifications inattendues En d’autres termes, les correctifs 4199 d’indicateur de trace sont activés pour chaque niveau de compatibilité pris en charge dans une version de produit donnée. Leniveau de compatibilité le plus récent active l’ensemble des correctifs antérieurs sous indicateur de suivi 4199. En d’autres termes, la mise à niveau d’une base de données vers le niveau de compatibilité le plus récent et la suppression de l’indicateur de suivi 4199 active toujours toutes les corrections qu’une charge de travail exploitait avant la mise à niveau de la base de données. Par la suite, si vous rencontrez des problèmes de performances d’interrogation plus tard, vous pouvez essayer l’option d’étendue de la base de données QUERY_OPTIMIZER_HOTFIXES ou l’indicateur de requête ENABLE_QUERY_OPTIMIZER_HOTFIXES dans un environnement de test pour déterminer si les problèmes sont résolus. Reportez-vous à la documentation sur QUERY_OPTIMIZER_HOTFIXES

Remarque Par défaut, les bases de données créées dans SQL Server 2016 utilisent le niveau de compatibilité 130 et possèdent une nouvelle logique d’optimiseur déjà activée.Le principal avantage de ce modèle réside dans le fait qu’il réduit les risques liés aux systèmes de production lors du processus de mise à niveau. Cette approche sépare l’installation d’une nouvelle version majeure de SQL Server du processus d’activation automatique de toutes les nouvelles modifications apportées au processeur de requêtes. Étant donné que des mises à niveau de version majeures modifient le format de fichier et ne sont pas réversibles, nous vous conseillons d’utiliser le paramètre COMPATIBILITY_LEVEL, car cela permet à un client d’effectuer rapidement une mise à niveau en cas de problème de performances de plan inattendu lors d’une mise à niveau. Si un client trouve une modification de plan inattendue qui bloque la mise à niveau d’une application, le client peut le faire en appliquant une astuce de plan appropriée à l’aide du magasin de requêtes pour mettre en place la planification préalable, ou peut facilement la faire en contactant le service clientèle Microsoft pour vous aider à fournir une solution de contournement ou un correctif Lorsque tous les problèmes sont atténués, la mise à niveau peut continuer. Les clients doivent incorporer cette fonctionnalité dans leur planification de mise à niveau pour SQL Server 2016.Le tableau suivant décrit le mode de fonctionnement de l’indicateur de trace 4199 à partir de SQL Server 2016.

Paramètre Niveau de compatibilité SQL Indicateur de suivi 4199 Hotfix de l’optimiseur avant SQL Server 2016 RTM Hotfix de l’optimiseur après SQL Server 2016 RTM
1. 120 Désactivé Désactivé Désactivé
2. 120 Activé Activé Désactivé
3. 130 Désactivé Activé par le niveau de compatibilité Désactivé
4. 130 Activé Activé par le niveau de compatibilité Activé par le niveau de compatibilité

Remarque Le paramètre no. 3 est recommandé pour les clients qui ont récemment effectué une mise à niveau vers SQL Server 2016.Pour les versions majeures après SQL Server 2016, Microsoft envisage de continuer à utiliser ce modèle de maintenance pour les correctifs de l’optimiseur. Par défaut, ou vers chaque version, tout indicateur de suivi 4199 correctifs à partir de la version précédente sera activé dans le niveau de compatibilité suivant. Cela signifie que l’État recommandé pour les clients après leur migration vers le niveau de compatibilité le plus récent sera de désactivation de l’indicateur de suivi 4199. Les correctifs ultérieurs utiliseront l’indicateur de suivi 4199 pour activer des correctifs pour les clients qui doivent activer ces correctifs spécifiques dans une application. Les clients sont invités à désactiver l’indicateur de suivi 4199 après la mise à niveau d’une application vers le niveau de compatibilité le plus récent afin d’éviter que des modifications inattendues ne soient apportées à l’application à l’avenir. Le fait de procéder à la mise à niveau vers le niveau de compatibilité le plus récent et de la suppression de l’indicateur de suivi 4199 active toujours toutes les corrections dont dispose une charge de travail avant la mise à niveau.

Remarque Lorsque de nombreux correctifs sont activés sous indicateur de suivi 4199, d’autres indicateurs de suivi sont utilisés. Indicateur de suivi 4199 les indicateurs de suivi qui sont largement applicables et qui peuvent être activés par défaut dans une version ultérieure. D’autres indicateurs de suivi sont utilisés dans les correctifs lorsque les conditions sont très spécifiques uniquement à quelques clients, lorsque le correctif peut entraîner des régressions de performance dans d’autres types d’applications, ou lorsque la fonctionnalité interne peut voir les modifications avant d’être activée pour tous les utilisateurs. Microsoft continuera à utiliser d’autres indicateurs de suivi nécessaires pour le service du produit.Remarque Cet article se concentre sur le modèle de publication d’indicateur de suivi 4199 sur le niveau de compatibilité le plus récent du dernier produit. (Au moment de la publication, il s’agit de SQL Server 2016.) Les correctifs de l’optimiseur pourront être distribués sur les versions les plus anciennes de SQL Server ou sur des niveaux de compatibilité inférieurs (120 ou antérieur) de SQL Server 2016. Microsoft évalue chaque cas et détermine s’il convient d’utiliser l’indicateur de suivi 4199 ou un indicateur de suivi différent. Dans la mesure où les modifications qui n’ont pas de correctifs sont également activées lors du déplacement d’un niveau de compatibilité ultérieur, il n’existe aucune promesse particulière indiquant qu’aucune modification de plan ne se produira lors d’une mise à niveau (avec ou sans indicateur de suivi 4199). Les clients doivent toujours tester soigneusement le niveau de compatibilité des applications de production et utiliser des technologies d’atténuation, comme le magasin de requêtes, s’il y a un problème de performance lié à un plan.Dans le cas d’une référence, le tableau suivant répertorie les indicateurs de suivi utilisés pour les correctifs de processeur de requête avant l’introduction de l’indicateur de suivi 4199.

Article de la Base de connaissances Microsoft Indicateur de suivi
318530 4101
940128 4102
919905 4103
920346 4104
920347 4105
922438 4106
923849 4107
926024 4108
926773 4109
933724 4110
934065 4111
946793 4115
950880 4116
948445 4117
942659 4119
953948 4120
942444 4121
946020 4122
948248 4124
949854 4125
959013 4126
953569 4127
955694 957872 4128
958547 4129
956686 4131
958006 4133
960770 4135*

SQL Server 2005

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 6 pour SQL Server 2005 Service Pack 3. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
974648 Package de mise à jour cumulative 6 pour SQL Server 2005 Service Pack 3
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2005. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
960598 Builds SQL Server 2005 publiées après la sortie de SQL Server 2005 Service Pack 3
Des correctifs Microsoft SQL Server 2005 sont créés pour des service packs SQL Server spécifiques. Vous devez appliquer un correctif SQL Server 2005 Service Pack 3 à une installation de SQL Server 2005 Service Pack 3. Par défaut, tout correctif fourni dans un service pack SQL Server est inclus dans le prochain Service Pack SQL Server.

SQL Server 2008

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 7. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
973601 Package de mise à jour cumulative 7 pour SQL Server 2008
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2008. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
956909 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008

SQL Server 2008 SP1

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 7 pour SQL Server 2008 Service Pack 1. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
979065 Package de mise à jour cumulative 7 pour SQL Server 2008 Service Pack 1
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2008. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
970365 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008 Service Pack 1
Des correctifs Microsoft SQL Server 2008 sont créés pour des service packs SQL Server spécifiques. Vous devez appliquer un correctif SQL Server 2008 Service Pack 1 à une installation de SQL Server 2008 Service Pack 1. Par défaut, tout correctif fourni dans un service pack SQL Server est inclus dans le prochain Service Pack SQL Server.

SQL Server 2008 R2

Dans la version finale de SQL Server 2008 R2, l’indicateur de suivi 4135 a été omis involontairement dans la liste des indicateurs de suivi qui peuvent être contrôlés par-T4199. Toutefois, ce problème a été résolu dans la mise à jour cumulative 1 pour SQL Server 2008 R2. Ainsi, pour cette build et pour les éditions de SQL Server 2005 et SQL Server 2008 prises en charge,-T4199 suffit de l’activer et d’autres indicateurs de suivi qui sont répertoriés dans cet article.

SQL Server 2012 et versions ultérieures

L’indicateur de suivi 4199 est inclus dans les versions antérieures de SQL Server 2012 et versions ultérieures.

Activation de l’indicateur de suivi 4199

Vous pouvez activer l’indicateur de suivi 4199 au démarrage ou lors d’une session utilisateur. Cet indicateur de suivi a un effet de niveau global ou de session. Pour activer l’indicateur de suivi 4199, utilisez la commande DBCC TRACEON ou utilisez – T 4199 comme paramètre de démarrage. Si DBCC TRACEON\TRACEOFF est utilisé, cela ne régénère pas de nouveau plan mis en cache pour les procédures stockées. Les plans peuvent être en cache qui ont été créés sans l’indicateur de suivi. Pour plus d’informations sur l’activation ou la désactivation des indicateurs de suivi, et pour obtenir des explications sur les indicateurs de suivi global et de session, reportez-vous aux rubriques suivantes dans la documentation en ligne de SQL Server :

Références


Pour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
822499 Nouveau schéma d’affectation de noms pour les packages de mise à jour logicielle Microsoft SQL Server
Pour plus d’informations sur la terminologie des mises à jour logicielles, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft