KB2430162-FIX : « l’expression contient une fonction qui ne peut pas s’exécuter sur un jeu avec plus de 4 294 967 296 tuples » s’affiche lorsque vous essayez d’exécuter une requête MDX dans SSAS 2008 ou dans SSAS 2008 R2

Microsoft distribue les correctifs Microsoft SQL Server 2008 Service Pack 1 (SP1) ou SQL Server 2008 R2 comme 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 antérieure de SQL Server 2008 Service Pack 1 (SP1) ou SQL Server 2008 R2.

Symptômes

Prenons l’exemple du scénario suivant :

  • Vous avez une requête d’expressions multidimensionnelles (MDX) qui répond aux conditions suivantes dans Microsoft SQL Server 2008 Analysis Services (SSAS) 2008 ou dans Microsoft SQL Server 2008 R2 Analysis Services (SSAS) 2008 R2 :

    • La requête utilise la fonction CROSSJOIN.

    • L’expression de la requête comporte plus de deux ensembles d’arguments composés de tuples issus de différentes hiérarchies d’attributs dans la même dimension.

    • Ces jeux sont séparés par un autre jeu composé de tuples issus d’une autre dimension.

    • Le jeu de résultats théorique de la fonction CROSSJOIN correspond généralement à plus de 4 294 967 296 tuples. Par exemple, vous avez une requête MDX qui contient les éléments suivants :

      WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Customer].[Customer].[Customer], [Product].[Product].[Product])SELECT {} ON 0,S.ITEM(1) ON 1FROM [Adventureworks]
  • Vous essayez d’exécuter la requête.

Dans ce scénario, la requête ne s’exécute pas. En outre, le message d'erreur suivant s'affiche :

L’expression contient une fonction qui ne peut pas être appliquée à un jeu avec plus de tuples 4 294 967 296.

Remarque Ce type de requête MDX est susceptible d’être généré automatiquement par un tableau croisé dynamique Excel.

Résolution

Informations sur les mises à jour cumulatives

SQL Server 2008 SP1

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

2413738 Package de mise à jour cumulative 11 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 la version de correctif du Service Pack 1 (SP1) 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

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 2

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

2467239 Package de mise à jour cumulative 2 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. 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 :

2402659 Builds SQL Server 2008 publiées après la sortie de SQL Server 2008 Service Pack 2 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 2 à une installation de SQL Server 2008 Service Pack 2. Par défaut, tout correctif fourni dans un service pack SQL Server est inclus dans le prochain Service Pack SQL Server.

Solution de contournement

Pour contourner ce problème, utilisez une expression qui comporte deux attributs adjacents de la même dimension dans la requête. Par exemple, la requête MDX contient les éléments suivants :

WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Product].[Product].[Product], [Customer].[Customer].[Customer])SELECT {} ON 0,S.ITEM(1) ON 1FROM [Adventureworks]

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.

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.

×