INTRODUCTION
Les versions de Microsoft SQL Server ultérieures à SQL Server 2000 Service Pack 3 (SP3) ont remis la plupart des correctifs logiciels à l’optimiseur de requête dans un état par défaut afin d’empêcher les clients de production existants de voir les modifications de plan attendues qui pourraient entraîner des régressions de performances. Au début, chaque correctif a été remis sous un indicateur de suivi distinct. Par la suite, cette pratique a été modifiée afin que la plupart des indicateurs soit combinés sous un seul indicateur de suivi (4 199). Cette nouvelle pratique a été initiée dans plusieurs versions à partir des mises à jour suivantes :
-
SQL Server jour cumulative 6 du Service Pack 3 (SP3) 2005
-
SQL Server 2008 Service Pack 1 (SP1) package de mise à jour cumulative 7
-
SQL Server 2008 R2 (RTM)
L’indicateur de suivi 4199 a été utilisé pour collecter des correctifs qui étaient destinés à être publiés par défaut dans une prochaine version, tandis que d’autres indicateurs de suivi étaient utilisés dans les situations dans lesquelles un correctif n’était pas destiné à être utilisé par défaut dans la forme actuelle. À partir de SQL Server 2016 RTM, le paramètre de COMPATIBILITY_LEVEL de base de données sera utilisé pour activer par défaut les correctifs liés à l’indicateur de suivi 4199. Cet article décrit la mécanismes et la politique de livraison des correctifs concernant le plan pour les versions SQL Server 2016 et ultérieures.
Informations supplémentaires
Dans SQL Server 2016, les correctifs de l’indicateur de suivi 4199 qui ont été ajoutés à des versions antérieures de SQL Server seront activés sous base de données COMPATIBILITY_LEVEL 130 sans indicateur de suivi 4199 activés. L’indicateur de suivi 4199 sera utilisé pour publier les correctifs SQL Server 2016 futurs pour les bases de données à l’aide du niveau de compatibilité 130. Étant donné que l’indicateur de suivi 4199 est recommandé uniquement pour les clients qui rencontrent des problèmes de performances spécifiques, il est recommandé de supprimer l’indicateur de suivi 4199 après la migration de leurs bases de données vers le niveau de compatibilité le plus récent, car l’indicateur de suivi 4199 est réutilisé pour les corrections futures qui peuvent ne pas s’appliquer à votre application et entraîner des modifications inattendues des performances de plan sur un système de production. Cela signifie que différents correctifs de l’indicateur de suivi 4199 sont activés pour chaque niveau de compatibilité pris en charge dans une version donnée du produit. Le dernier niveau de compatibilité active déjà tous les correctifs précédents sous l’indicateur de suivi 4199. Cela signifie que la mise à niveau d’une base de données vers le dernier niveau de compatibilité et la suppression de l’indicateur de suivi 4199 active toujours tous les correctifs qu’une charge de travail tirant parti avant la mise à niveau de la base de données, mais pas les nouveaux correctifs. Si les clients sont ultérieurement en situation de problèmes de performances des requêtes, testez l’activation de l’QUERY_OPTIMIZER_HOTFIXES d’option étendue à la base de données ou de l’ENABLE_QUERY_OPTIMIZER_HOTFIXES d’astuce de requête dans un environnement de test pour déterminer si les problèmes sont résolus. Consultez la documentation relative à 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 ont déjà été activées par une nouvelle logique d’optimiseur.
L’avantage majeur de ce modèle est qu’il réduit le risque pour les systèmes de production pendant le processus de mise à niveau. Cette approche sépare l’installation d’une nouvelle version majeure de SQL Server de l’activation automatique de toutes les modifications apportées au nouveau processeur de requêtes. Étant donné que les mises à niveau des versions principales modifient le format de fichier et ne sont pas irréversibles, il est bon d’utiliser le paramètre COMPATIBILITY_LEVEL, car cela permet au client de passer rapidement à une version antérieure en cas de problème inattendu de performances d’une offre lors d’une mise à niveau. Si un client trouve un changement inattendu qui bloque une mise à niveau d’application, il peut faciliter la situation en appliquant un indice de plan approprié en utilisant le Magasin de requêtes pour forcer l’offre antérieure, ou peut faciliter la situation en contactant le support client Microsoft pour l’aider à contourner le problème afin de fournir une solution de contournement ou un correctif. Lorsque tous les problèmes sont diminués, la mise à niveau peut continuer. Les clients doivent intégrer cette fonctionnalité à leur planification de mise à niveau SQL Server 2016. Le tableau suivant explique le modèle de fonctionnement de l’indicateur de suivi 4199 à partir SQL Server 2016.
Paramètre |
SQL niveau de compatibilité |
Trace flag 4199 |
Correctifs d’optimisation avant SQL Server 2016 RTM |
Correctifs d’optimisation 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 niveau de compatibilité |
Désactivé |
4. |
130 |
Activé |
Activé par niveau de compatibilité |
Activé par niveau de compatibilité |
Paramètre de note n. 3 est recommandé pour les clients qui ntnt d’une mise à niveau vers SQL Server 2016.
Pour les principales publication après SQL Server 2016, Microsoft envisage de continuer à utiliser ce modèle de service pour les correctifs logiciels de l’optimiseur. Par défaut, ou à chaque publication, les correctifs de l’indicateur de suivi 4199 de la version précédente seront activés au niveau de compatibilité suivant. Cela signifie que l’état recommandé pour les clients après la migration vers le dernier niveau de compatibilité sera désactivé l’indicateur de suivi 4199. Plus tard, les correctifs utiliseraient l’indicateur de suivi 4199 pour activer les 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 au niveau de compatibilité le plus récent afin d’éviter que des modifications ultérieures de l’optimiseur soient activées inopinément sur une application. La mise à niveau vers le dernier niveau de compatibilité et la suppression de l’indicateur de suivi 4199 permet toujours de tous les correctifs qu’une charge de travail exploite avant la mise à niveau, mais pas les nouveaux correctifs.Remarque Si de nombreux correctifs d’optimisation sont activés sous l’indicateur de trace 4199, certains utilisent d’autres indicateurs de suivi. Trace flag 4199 historically covered trace flags that are widely applicable and likely to become enabled by default in a future release. Les indicateurs de suivi de remplacement sont utilisés dans les correctifs lorsque les conditions sont très spécifiques à quelques clients seulement, où le correctif peut entraîner des régressions de performances dans d’autres types d’applications, ou lorsque les fonctionnalités internes peuvent voir des modifications avant qu’elles ne soient prêtes à être activées pour tout le monde. Microsoft continuera à utiliser d’autres indicateurs de suivi si nécessaire pour mettre en service le produit.
Remarque Cet article se concentre sur le modèle pour publier les correctifs de l’indicateur de suivi 4199 sur le dernier niveau de compatibilité du produit le plus récent. (À l’heure de la publication, SQL Server 2016.) Les correctifs logiciels optimisés peuvent être publiés sur d’anciennes versions sur le marché d’SQL Server ou sur des niveaux de compatibilité inférieurs (120 ou antérieurs) d’SQL Server 2016. Microsoft évalue chaque cas et détermine s’il faut utiliser l’indicateur de suivi 4199 ou un autre indicateur de suivi. Étant donné que les modifications autres que les correctifs logiciels sont également activées lorsqu’un déplacement est effectué à un niveau de compatibilité ultérieur, il n’y a aucune promesse spécifique qu’aucun changement de plan ne se produira pendant une mise à niveau (avec ou sans indicateur 4199). Les clients doivent toujours tester soigneusement les modifications apportées au niveau de compatibilité pour les applications de production et utiliser les technologies d’atténuation, telles que le Magasin de requêtes, en cas de problème de performance lié au choix d’un plan. Pour référence, les indicateurs de suivi suivants ont été utilisés pour les correctifs de processeur de requête avant l’introduction de l’indicateur de suivi 4199 :4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4115, 4116, 4117, 4119, 4120, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4131, 4133, 4135.
SQL Server 2012 et versions ultérieures
L’indicateur de suivi 4199 est inclus dans les versions de publication SQL Server 2012 et versions ultérieures.
Activer l’indicateur de trace 4199
Vous pouvez activer l’indicateur de trace 4199 au démarrage ou dans une session utilisateur. Cet indicateur de suivi a un effet au niveau global ou au niveau de la session. Pour activer l’indicateur de trace 4199, utilisez la commande DBCC TRACEON ou utilisez –T 4199 comme paramètre de démarrage.
Si la fonctionnalité DBCC TRACEON\TRACEOFF est utilisée, cela ne régénére pas un nouveau plan mis en cache pour les procédures stockées. Les plans peuvent être dans le cache qui ont été créés sans l’indicateur de suivi. Pour plus d’informations sur la façon d’activer ou de désactiver les indicateurs de suivi et pour plus d’informations sur les indicateurs de suivi globaux et de session, consultez les rubriques suivantes dans SQL Server Livres en ligne :Références
Pour plus d’informations sur le schéma d’appellation SQL Server mises à jour, cliquez sur le numéro d’article suivant pour afficher cet article dans la Base de connaissances Microsoft :
822499 Nouveau schéma d’attribution de noms Microsoft SQL Server packages de mise à jour logicielle Pour plus d’informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro d’article suivant pour afficher l’article dans la Base de connaissances Microsoft :
824684 Description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft