KB2344600-FIX : le message d’erreur « Impossible de générer le programmateur » est susceptible de se produire lorsque vous utilisez la fonction CONTAINSTABLE conjointement avec de nombreux prédicats OR et et et dans SQL Server 2008 ou SQL Server 2008 R2

Microsoft distribue les correctifs Microsoft SQL Server 2008 sous la forme d’un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008.Microsoft distribue les correctifs Microsoft SQL Server 2008 ou SQL Server 2008 R2 sous la forme d’un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente de SQL Server 2008 ou SQL Server 2008 R2.

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous avez une requête de recherche en texte intégral qui utilise la fonction CONTAINSTABLE conjointement avec de nombreux prédicats or et and dans la condition dans Microsoft SQL Server 2008 ou SQL Server 2008 R2. Par exemple, vous avez les 50 et opérations suivants : Declare @Keywords varchar(4000) = NULLset @Keywords= N'((((((((((((((((((((((((((((((((((((((((((((((((((((("TOKarchitect" OR "architectural") AND ("TOKengineer" OR "engineer")) AND "gineer") AND ("TOKmechanical" OR "Mechanical")) AND ("TOKengineer" OR "Engineering")) AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectronic" OR "Electronics")) AND ("TOKengineer" OR "Engineering")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineer")) AND ("TOKelectric" OR "Electrical")) AND ("TOKengineer" OR "Engineering")) AND ("TOKcontrol" OR "Control")) AND ("TOKsystem" OR "Systems")) AND ("TOKengineer" OR "Engineer")) AND ("TOKproject" OR "Project")) AND ("TOKmanager" OR "Manager")) AND ("TOKengineer" OR "Engineering")) AND "Scheme") AND ("TOKmanufacture" OR "Manufacturing")) AND ("TOKengineer" OR "Engineer")) AND ("TOKmetallurgist" OR "Metallurgy")) AND ("TOKmetallurgist" OR "Metallurgist")) AND ("TOKprocess" OR "Process")) AND ("TOKTechnology" OR "Technology")) AND ("TOKproduct" OR "Production")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKengineer" OR "Engineer")) AND ("TOKQuality" OR "Quality")) AND ("TOKcontrol" OR "Control")) AND ("TOKengineer" OR "Engineer")) AND "Mechatronics") AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineer")) AND ("TOKcivil" OR "Civil")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineering")) AND ("TOKdesign" OR "Design")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "Engineer")) AND ("TOKgraduate" OR "Graduate")) AND ("TOKengineer" OR "engineering")) AND ("TOKengineer" OR "Engineering")) AND ("TOKgraduate" OR "Graduate")) AND ") ANDNOT (") AND ("TOKRecruitment" OR "Recruitment")) AND ("TOKconsultant" OR "consultant")) AND ("TOKtrainee" OR "trainee")) AND ("TOKRecruitment" OR "recruitment"))'select * from CONTAINSTABLE(test_table, *, @keywords, 1000)

  • Vous exécutez la requête.

Dans ce scénario, l’erreur « programmateur sans yield » risque de se produire. Par ailleurs, un fichier de mini-vidage est généré dans le dossier du journal des applications SQL Server 2008 ou SQL Server 2008 R2, et le message d’erreur suivant est consigné dans le fichier journal des erreurs SQL Server :

>d’horodatage< Serveur utilisant « dbghelp. dll » version « 4.0.5 »<horodatage> Server * * * impossible d’obtenir le contexte de fil pour le spid 0<horodatage> Server * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *><><<d’horodatage> Server *<temps>SPID <SPID><horodatage>serveur*<horodatage>serveur * le programmateur sans revenu<horodatage>serveur *< horodatage>serveur * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *><>< Le processus de vidage externe n’a renvoyé aucune erreur.>d’horodatage< Le processus serveur 0:0:0 (0xf94) le travailleur 0x00000000817481A0 semble ne pas produire sur le programmateur 0. Heure de création du thread : 12925321224306. Approx. processeur utilisée : noyau 62 ms, utilisateur 75187 ms. Taux d’utilisation de processus 98%. Système inactif 0%. Intervalle : 76403 ms.>d’horodatage< Le processus serveur 0:0:0 (0xf94) le travailleur 0x00000000817481A0 semble ne pas produire sur le programmateur 0. Heure de création du thread : 12925321224306. Approx. processeur utilisée : noyau 125 ms, utilisateur 145250 ms. Taux d’utilisation de processus 98%. Système inactif 0%. Intervalle : 148417 ms.>d’horodatage< Le processus serveur 0:0:0 (0xf94) le travailleur 0x00000000817481A0 semble ne pas produire sur le programmateur 0. Heure de création du thread : 12925321224306. Approx. processeur utilisée : noyau 171 ms, utilisateur 205515 ms. Taux d’utilisation de processus 98%. Système inactif 0%. Intervalle : 209729 ms.>d’horodatage< Le processus serveur 0:0:0 (0xf94) le travailleur 0x00000000817481A0 semble ne pas produire sur le programmateur 0. Heure de création du thread : 12925321224306. Approx. processeur utilisée : noyau 218 ms, utilisateur 266343 ms. Taux d’utilisation de processus 98%. Système inactif 0%. Intervalle : 271588 ms.>d’horodatage< Le processus serveur 0:0:0 (0xf94) le travailleur 0x00000000817481A0 semble ne pas produire sur le programmateur 0. Heure de création du thread : 12925321224306. Approx. processeur utilisée : noyau 234 ms, utilisateur 325156 ms. Taux d’utilisation de processus 97%. Système inactif 0%. Intervalle : 333671 ms.>d’horodatage< Le processus serveur 0:0:0 (0xf94) le travailleur 0x00000000817481A0 semble ne pas produire sur le programmateur 0. Heure de création du thread : 12925321224306. Approx. processeur utilisée : noyau 296 ms, utilisateur 386000 ms. Taux d’utilisation de processus 97%. Système inactif 0%. Intervalle : 396370 ms.

Cause

Ce problème se produit car SQL Server 2008 ou SQL Server 2008 R2 ne libère pas correctement un planificateur.

Résolution

Informations sur les mises à jour cumulatives

SQL Server 2008 R2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 5. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

2438347 Package de mise à jour cumulative 5 pour SQL Server 2008 R2 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 la version précédente du correctif SQL Server 2008 R2. 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 :

981356 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2

SQL Server 2008 Service Pack 1

Le correctif de ce problème a été corrigé pour la première fois dans la mise à jour cumulative 10 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 :

2279604 Package de mise à jour cumulative 10 pour SQL Server 2008 Service Pack 1Remarque 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. Microsoft vous recommande 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 Service Pack 2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 1 pour SQL Server 2008 Service Pack 2. 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 :

2289254 Mise à jour cumulative 1 pour SQL Server 2008 Service Pack 2Remarque 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 :

2402659 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008 Service Pack 2

Solution de contournement

Pour contourner ce problème, utilisez un dictionnaire des synonymes de recherche en texte intégral pour définir les synonymes du prédicat. Pour ce faire, utilisez la fonction FORMSOF conjointement avec la valeur du dictionnaire des synonymes , puis ajoutez tous les mots clés comme paramètres. Dans l’exemple qui est décrit dans la section « symptômes », vous trouverez ci-dessous une version mise à jour de l’exemple de requête : Select * from test_table where Contains(*,'FORMSOF (THESAURUS,"architectural","engineer","Mechanical","Engineering","Electronics","Engineer","Electrical","Control","Systems","Project","Manager","Manufacturing","Metallurgy","Metallurgist","Process",”Design”,"Technology","Production","Quality","Control","Civil","Graduate","Recruitment","consultant","trainee","recruitment")')

Statut

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Références

Pour plus d’informations sur la fonction CONTAINSTABLE , visitez le site Web Microsoft Developer Network (MSDN) suivant :

Informations générales sur la fonction CONTAINSTABLEPour plus d’informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :

935897 Un modèle de maintenance incrémentiel est disponible auprès de l’équipe SQL Server pour obtenir des correctifs pour les problèmes signalésPour 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 :

822499Nouveau schéma d’affectation de noms pour les packages de mise à jour logicielle Microsoft SQL ServerPour 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

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×