Simptomi
Pretpostavimo da koristite način pohrane relacijskih OLAP (ROLAP) za grupu mjera u instanci sustava SQL Server 2014 ili 2016 Analysis Services. Kada postavite vrijednost naprednog svojstva Maxrolaporconditions na više od 256, u grupi mjera izvršite MDX upite. U ovom slučaju primate pogreške koje liče na sljedeće:
#Error nije uspjelo učitavanje i raščlaniti strujanje u programu DOM parser. URL: "razlog:" operacija je prekinuta: narušena je maksimalna Ograničenje maksimuma elementa. " Izvor: ' '. Položaj datoteke: 0. Linija: 6.
Uzrok
Servisi za analizu generiraju pseudo-SQL XML dokument, koji se potom raščlanuje putem XML lista stilova da bi generirao konačnu SQL naredbu koja se šalje u relacijski izvor. Prilikom stvaranja početnog unutarnjeg XML dokumenta ili uvjeta za stupac generiraju se kao ugniježđeni XML elementi kao u sljedećem primjeru:
<OR> <Condition>column1 = value1</Condition> <OR> <Condition>column1 = value2</Condition> <OR> <Condition>column1 = value3</Condition> </OR> </OR></OR>
Zadano svojstvo MaxElementDepth za objekt MSXML dom koji koristi analitičke servise za stvaranje XML dokumenta 256 je u sustavu MSXML 6,0. Dakle, kada se poveća konfiguracija funkcija Maxrolaporconditions , generirani XML dokument može premašiti ovu maksimalnu dubinu.
Rješenje
Taj je problem riješen u sljedećem kumulativnom ažuriranju za SQL Server:
Kumulativno ažuriranje 5 za SQL Server 2016 RTM
Kumulativno ažuriranje 2 za SQL Server 2016 SP1
Kumulativno ažuriranje 4 za SQL Server 2014 SP2
Kumulativno ažuriranje 10 za SQL Server 2014 SP1
O kumulativnim ažuriranjima za SQL Server
Svako novo Kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sve sigurnosne ispravke uključene u prethodno Kumulativno ažuriranje. Pogledajte najnovija kumulativna ažuriranja za SQL Server:
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".
Dodatne informacije
Ovim se promjenama mijenja način generiranja posrednog XML dokumenta, tako da svaki dodatni ili uvjet nije ugniježđen u prethodnom ili XML elementu. Dakle, možete povećati Maxrolaporconditions izvan 256. No još uvijek postoje praktična ograničenja broja ili uvjeta koji se mogu koristiti. Kako se povećava broj ili uvjeta, složenost SQL naredbe koja je generirana može premašiti kapacitet poslužitelja relacijske baze podataka, uzrokujući nove pogreške. Slijede primjeri uvjeta koji mogu uzrokovati nove pogreške:
-
Prekoračenje maksimalnog broja parametara u izjavi
-
Prekoračenje maksimalnog broja uvjeta u uvjetu WHERE
-
Pogreške prilikom raščlanjivanja niza SQL upita
-
Prekoračenje maksimalne veličine SQL upita
Stoga preporučujemo da se s oprezom koristi bilo koja Prilagodba konfiguracije sustava Maxrolaporconditions .
Reference
Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ažuriranja.