Microsoft distribue les correctifs Microsoft SQL Server 2008 R2 SP1 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 R2 SP1.
Symptômes
Considérez le scénario suivant. Vous exécutez une requête MDX qui utilise des fonctions CrossJoin imbriquées dans Microsoft SQL Server 2008 R2. Les fonctions CrossJoin imbriquées font référence à des hiérarchies entrelacées. Dans ce scénario, la requête s’exécute très lentement et SQL Server 2008 R2 ne répond plus. Par exemple, vous exécutez une requête MDX qui ressemble à ce qui suit :
CrossJoin (CrossJoin (CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])), [Dimension1 Hierarchy]), [Dimension2 Hierarchy]), [Dimension1 Hierarchy])Remarques
-
Dans les hiérarchies entrelacées, les fonctions CrossJoin imbriquées font référence à différentes hiérarchies de dimensions.
-
Ce problème ne se produit pas dans SQL Server 2008.
Cause
Ce problème survient parce que la mémoire nécessaire pour regrouper les hiérarchies de la même dimension augmente de façon exponentielle et est finalement utilisée.
Résolution
Informations sur les mises à jour cumulatives
SQL Server 2008 R2 Service Pack 2
Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 3. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2 Service Pack 2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2754552 Package de mise à jour cumulative 3 pour SQL Server 2008 R2 Service Pack 2 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 de correctif du Service Pack 2 SQL Server 2008 R2 antérieur. 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 :
2730301 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 Service Pack 2
SQL Server 2008 R2 SP1
Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 8. 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 :
2723743 Package de mise à jour cumulative 8 pour SQL Server 2008 R2 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 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 :
2567616 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 Service Pack 1
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.
Solution de contournement
Pour contourner ce problème, modifiez la requête de sorte qu’elle place la deuxième hiérarchie de dimension dans la fonction CrossJoin externe. Par exemple, réécrivez la requête de la façon suivante :
CrossJoin(CrossJoin(CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])),[Dimension1 Hierarchy]), [Dimension1 Hierarchy]), [Dimension2 Hierarchy])