Applies ToSQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Symptômes

Partez du principe que vous utilisez le mode de stockage OLAP relationnel (ROLAP) pour un groupe de mesures dans une instance de SQL Server 2014 ou 2016 Analysis Services. Après avoir défini la valeur de la propriété Advanced MaxRolapOrConditions sur plus de 256, vous exécutez des requêtes MDX sur ce groupe de mesures. Dans ce cas, vous recevez des erreurs similaires à ce qui suit :

#Error l’analyseur DOM n’a pas pu charger et analyser le flux. URL : « raison : » opération interrompue : contrainte de profondeur d’élément Max violée. ' Source : ' '. Emplacement du fichier : 0. Ligne : 6.

Cause

Analysis Services génère un document XML Pseudo-SQL, qui est ensuite analysé par le biais d’une feuille de style XML pour générer l’instruction SQL finale qui est envoyée à la source relationnelle. Lors de la génération du document XML interne initial, les conditions d’une colonne sont générées en tant qu’éléments XML imbriqués comme dans l’exemple suivant :

<OR> <Condition>column1 = value1</Condition>  <OR>   <Condition>column1 = value2</Condition>    <OR>     <Condition>column1 = value3</Condition>    </OR>  </OR></OR> 

La propriété MaxElementDepth par défaut d’un objet DOM MSXML qui est utilisée par Analysis Services pour générer le document xml est 256 dans MSXML 6.0. par conséquent, lorsque la configuration MaxROLAPOrConditions est améliorée, le document XML généré peut dépasser cette profondeur maximale.

Résolution

Ce problème a été résolu dans la mise à jour cumulative suivante pour SQL Server :

    Mise à jour cumulative 5 pour SQL Server 2016 RTM

    Mise à jour cumulative 2 pour SQL Server 2016 SP1 

Mise à jour cumulative 4 pour SQL Server 2014 SP2

Mise à jour cumulative 10 pour SQL Server 2014 SP1

À propos des mises à jour cumulatives pour SQL Server

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :

Dernière mise à jour cumulative pour SQL Server 2016

Dernière mise à jour cumulative pour SQL Server 2014

Statut

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Informations supplémentaires

Ce correctif modifie le mode de génération du document XML intermédiaire, de sorte que chaque élément supplémentaire ou condition n’est pas imbriqué dans l’élément précédent ou XML. Par conséquent, vous pouvez augmenter la MaxROLAPOrConditions au-delà de 256. Néanmoins, il existe toujours des limitations pratiques en matière de nombre de conditions qui peuvent être utilisées. Lorsque le nombre de conditions augmente, la complexité de l’instruction SQL générée peut dépasser la capacité du serveur de base de données relationnelle, ce qui engendre de nouvelles conditions d’erreur. Voici quelques exemples de circonstances susceptibles de provoquer de nouvelles erreurs :

  • Dépassement du nombre maximum de paramètres dans une instruction

  • Dépassement du nombre maximal de conditions dans une clause Where

  • Erreurs dans l’analyse de la chaîne de requête SQL

  • Dépassement de la taille maximale d’une chaîne de requête SQL

Par conséquent, nous vous conseillons d’apporter des modifications à la configuration de configuration MaxROLAPOrConditions avec précaution.

Références

Apprenez-en davantage sur la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.