2010-01-14 3 views
3

J'essaie de demander à un cube sur SQL Server 2008 une requête mdx énorme.Erreur MDX: L'Optimiseur de requête a généré trop de sous-cubes dans le plan de requête

Cette requête contient plus de 20 membres calculés (définis dans la requête).

Chaque membre contient une restriction pour une dimension sur le cube. Pas toujours besoin de toutes les dimensions, mais parfois c'est nécessaire.

Eh bien, cela fonctionne bien jusqu'à 16 membres. Avec plus de 16 membres, une erreur de message s'affiche: "L'Optimiseur de requête a généré trop de sous-cubes dans le plan de requête".

Est-il possible de résoudre cette erreur?

Merci!

Julieta

Répondre

1

Votre rester coincé dans un goulot d'étranglement de performance et je pense que votre première étape serait de déterminer si le goulot d'étranglement est dans le moteur de formule ou le moteur de stockage. Pour ce faire, déterminez le temps requis par le moteur de formule et le moteur de stockage pour exécuter la requête MDX peu performante lorsque le cache est froid. Le temps passé par le moteur de stockage peut être déterminé en additionnant le temps écoulé pour chaque événement de sous-cube de requête dans une trace du profileur SQL Server. Le temps passé par le moteur de formule peut être déterminé en soustrayant le temps passé par le moteur de stockage du temps d'exécution total de l'événement Query End.

Vous avez déjà un début car vous savez que le 16ème membre calculé provoque l'erreur et que vous pouvez revenir en arrière pour déterminer ce qui limite les événements du sous-cube.

Voir cet article pour plus d'informations sur vaquant ceci: http://74.125.95.132/search?q=cache:XgP38c6S9-UJ:www.badlydressedboy.com/docs/IdentifyingAndResolvingMDXBottlenecksSSAS.doc+query+optimizer+generated+too+many+subcubes+in+the+query+plan&cd=14&hl=en&ct=clnk&gl=us

Questions connexes