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

CORRECTIF : Résultats incohérents lorsque vous exécutez une requête complexe qui utilise l'opérateur APPLY dans SQL Server 2008 R2

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: 2428310
Microsoft distribue les correctifs de Microsoft SQL Server 2008 R2 en tant qu'un fichier téléchargeable unique. Les correctifs étant cumulatifs, chaque nouvelle version contient tous les correctifs et correctifs de sécurité inclus avec la précédente de SQL Server 2008 R2 version du correctif.
Symptômes
Dans Microsoft SQL Server 2008 R2, vous pouvez recevoir des résultats incohérents lorsque vous exécutez une requête complexe qui utilise leAPPLIQUERopérateur.

RemarqueVous recevez le résultat correct dans ce scénario, si vous utilisez leORDRE DE FORCEindicateur de requête dans une requête.
Cause
Ce problème se produit car l'optimiseur de requêtes sélectionne un plan d'exécution incorrecte pour la requête.

Les handles d'optimiseur de requête leREGROUPER PARprédicat pour les colonnes multiples dans un opérateur physique du plan d'exécution. Toutefois, l'opérateur renvoie toutes les colonnes groupées dans la liste de sortie et ne pas regrouper les colonnes ci-dessous. Par conséquent, la requête peut retourner un résultat incorrect.

RemarqueUn exemple d'un opérateur physique est laAgrégat de flux de donnéesopérateur.

Par exemple, l'optimiseur de requête génère unGROUP BY ColA, ColBclause en interne sur le tableau suivant :
ColAColB
00
01
L'optimiseur de requêtes peut générer incorrectement un plan d'exécution qui renvoie à la fois leColAetColBcolonnes. Ces colonnes sont regroupées par leColAcolonne dans la liste de sortie. Dans cet exemple, la requête puisse retourner au hasard0ou1dans laColBcolonne si les valeurs dans laColAsont de la colonne0.
Résolution

Informations de mise à jour cumulative

SQL Server 2008 R2

Tout d'abord, le correctif de ce problème a été publié à 5 de mise à jour cumulative. Pour plus d'informations sur l'obtention de ce package de mise à jour cumulatives pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
2438347Package cumulatif de mise à jour de 5 pour SQL Server 2008 R2
RemarqueLes versions étant cumulatives, chaque nouvelle version de correctif contient tous les correctifs et correctifs de sécurité inclus avec la précédente de SQL Server 2008 R2 version du correctif. Il est recommandé d'envisager l'application de la version du correctif plus récente qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
981356Versions de SQL Server 2008 R2 ont été publiés après la publication de SQL Server 2008 R2
Statut
Microsoft a confirmé qu'il s'agit d'un problème dans les produits Microsoft répertoriés dans la section «S'applique à».
Plus d'informations
Pour vérifier que vous avez rencontré ce problème, passez en revue le plan d'exécution de la requête qui pose problème et vérifiez les opérateurs du groupe. Par exemple, vérifier l'opérateur d'agrégation de flux, de l'opérateur d'agrégation de hachage, de l'opérateur de tri distinctes et de l'opérateur de segment. Si la liste des colonnes de sortie est plus longue que la liste des colonnes groupées, vous avez rencontré ce problème.
Références
Pour plus d'informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
935897Un modèle de service incrémentiel est disponible à partir de l'équipe SQL Server pour fournir des correctifs pour les problèmes signalés
Pour plus d'informations sur le schéma d'affectation de noms pour les mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
822499Nouveau schéma d'affectation de noms pour les packages de correctifs Microsoft SQL Server
Pour plus d'informations sur la terminologie de mise à jour de logiciel, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
824684 de laDescription de la terminologie standard utilisée pour décrire les mises à jour de logiciel Microsoft

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 2428310 - Dernière mise à jour : 12/31/2010 07:16:00 - Révision : 2.0

Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2428310 KbMtfr
Commentaires