Symptomer
Anta at du bruker tilhørende OLAP (ROLAP) lagring modus for et mål i en forekomst av SQL Server-2014 eller 2016 Analysis Services. Etter at du setter verdien for MaxRolapOrConditions avanserte egenskapen til mer enn 256, kan du utføre MDX-spørringer for gruppen mål. I dette tilfellet kan du motta feilmeldinger som ligner på følgende:
#Error for DOM-parseren kunne ikke laste og analysere dataflyten. URL:'' årsak: ' operasjonen avbrutt: max-element-dybde på begrensning. " Kilde:''. Filen posisjon: 0. linje: 6.
Årsak
Analysis Services genererer en pseudo-SQL XML-dokument, som deretter analyseres via et XML-stilark til å generere den endelige SQL-setningen som sendes til den tilhørende kilden. Når du genererer det første interne XML-dokumentet, genereres OR-betingelser for en kolonne som nestede XML-elementer som i følgende eksempel:
<OR>
<Condition>column1 = value1</Condition>
<OR>
<Condition>column1 = value2</Condition>
<OR>
<Condition>column1 = value3</Condition>
</OR>
</OR>
</OR>
Standard MaxElementDepth-egenskapen for et MSXML DOM-objekt som brukes av Analysis Services til å bygge XML-dokumentet er 256 i MSXML 6.0.
Når MaxROLAPOrConditions konfigurasjonen økes, kan derfor det genererte XML-dokumentet overskrider denne maksimale dybden.
Løsning
Dette problemet er løst i den følgende kumulative oppdateringen for SQL Server:
Kumulativ oppdatering 5 for SQL Server 2016 RTM
Samleoppdatering 2 for SQL Server 2016 SP1
Kumulativ oppdatering 4 for SQL Server 2014 SP2
Kumulativ oppdatering 10 for SQL Server-2014 SP1
Om kumulative oppdateringer for SQL Server
Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Sjekk ut de nyeste kumulative oppdateringene for SQL Server:
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".
Hvis du vil ha mer informasjon
Denne hurtigreparasjonen endrer hvordan genereres mellomliggende XML-dokumentet, slik at hver enkelt tilleggsbetingelse eller ikke er nestet i tidligere eller XML-elementet. Derfor kan du øke MaxROLAPOrConditions mer enn 256. Det er imidlertid fortsatt praktiske begrensninger for hvor mange OR-betingelser som kan brukes.
Som øker antallet OR-betingelsene, kan kompleksiteten i SQL-setningen som genereres overstige kapasiteten til relasjonsdatabase-server, slik at nye feiltilstander.
Følgende er eksempler på betingelser som kan føre til at nye feil:
-
Overskrider det maksimale antallet parametere i en setning
-
Overskrider maksimalt antall betingelser i en where -setningsdel
-
Feil under analyse av SQL-spørrestreng
-
Overskrider den maksimale størrelsen på en SQL-spørrestreng
Vi anbefaler derfor at eventuelle justeringer til verdien MaxROLAPOrConditions konfigurasjon utføres med forsiktighet.
Referanser
Lær mer om terminologien som Microsoft bruker til å beskrive oppdateringer av programvare.