KB3208179-remediere: interogarea MDX returnează erorile dacă valoarea MaxRolapOrConditions este mai mare decât 256 în SQL Server Analysis Services

Simptome

Să presupunem că utilizați modul de stocare OLAP (ROLAP) relațional pentru un grup de măsuri într-o instanță a SQL Server 2014 sau 2016 Analysis Services. După ce setați valoarea proprietății complex MaxRolapOrConditions la mai mult de 256, executați interogări MDX pe acel grup de măsuri. În acest caz, primiți erori care seamănă cu următoarele:

#Error parser-ul DOM nu a reușit să încarce și să analizeze fluxul. URL: ' ' reason: ' operațiunea a fost anulată: restricția Max-element-adâncime încălcată. ' Sursă: ' '. Poziție fișier: 0. Linie: 6.

Cauză

Analysis Services generează un document XML pseudo-SQL, care este apoi analizat printr-o foaie de stiluri XML pentru a genera instrucțiunea SQL finală care este trimisă la sursa relațională. Atunci când generați documentul XML intern inițial sau condițiile pentru o coloană sunt generate ca elemente XML imbricate ca în exemplul următor:

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

Proprietatea MaxElementDepth implicită pentru un obiect Dom MSXML utilizat de Analysis Services pentru a construi documentul xml este 256 în MSXML 6.0. prin urmare, atunci când este mărită configurația MAXROLAPORCONDITIONS , documentul XML generat poate depăși această adâncime maximă.

Rezolvare

Această problemă este remediată în următoarea actualizare cumulativă pentru SQL Server:

    Actualizarea cumulativă 5 pentru SQL Server 2016 RTM

    Actualizarea cumulativă 2 pentru SQL Server 2016 SP1 

Actualizarea cumulativă 4 pentru SQL Server 2014 SP2

Actualizare cumulativă 10 pentru SQL Server 2014 SP1

Despre actualizările cumulative pentru SQL Server

Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:

Cea mai recentă actualizare cumulativă pentru SQL Server 2016

Cea mai recentă actualizare cumulativă pentru SQL Server 2014

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.

Mai multe informații

Această remediere modifică modul în care este generat documentul XML intermediar, astfel încât fiecare suplimentare sau condiții să nu fie imbricate în elementul anterior sau XML. Prin urmare, ați putea mări MaxROLAPOrConditions după 256. Cu toate acestea, există încă limite practice pentru numărul de condiții care pot fi utilizate. Pe măsură ce numărul sau condițiile cresc, complexitatea instrucțiunii SQL generate poate depăși capacitatea serverului de baze de date relationale, cauzând noi condiții de eroare. Iată câteva exemple de condiții care pot provoca erori noi:

  • Depășirea numărului maxim de parametri dintr-o instrucțiune

  • Depășirea numărului maxim de condiții dintr-o clauză Where

  • Erori în analizarea șirului interogării SQL

  • Depășirea dimensiunii maxime a unui șir de interogare SQL

Prin urmare, vă recomandăm să efectuați ajustări la valoarea de configurare MaxROLAPOrConditions cu precauție.

Referințe

Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×