Simptomi
Pieņemiet, ka ir jāizmanto relāciju OLAP (ROLAP) krātuves režīms pasākuma grupai SQL Server 2014 vai 2016 analīzes pakalpojumu instancē. Pēc tam, kad esat iestatījis rekvizīta MaxRolapOrConditions Advanced vērtību uz vairāk nekā 256, jūs izpildīs MDX vaicājumus par šo mērvienību grupu. Šajā gadījumā tiek saņemtas kļūdas, kas līdzinās tālāk norādītajam.
#Error DOM parsētājam neizdevās ielādēt un parsēt straumi. Vietrāža URL: "iemesls:" darbība priekšlaikus pārtraukta: ir pārsniegts maksimālais elementa dziļuma ierobežojums. " Source: ". Faila pozīcijas: 0. Rindiņa: 6.
Cēlonis
Analīzes pakalpojumi ģenerē pseido-SQL XML dokumentu, kas pēc tam tiek parsēts ar XML stila lapu, lai ģenerētu to galīgo SQL priekšrakstu, kas tiek sūtīts uz relāciju avotu. Ģenerējot sākotnējo iekšējo XML dokumentu, vai kolonnas nosacījumi tiek ģenerēti kā ligzdotie XML elementi, kā parādīts šajā piemērā:
<OR> <Condition>column1 = value1</Condition> <OR> <Condition>column1 = value2</Condition> <OR> <Condition>column1 = value3</Condition> </OR> </OR></OR>
Rekvizīts MaxElementDepth , kas tiek izmantots ar Analysis Services, lai izveidotu XML dokumentu, ir 256 MSXML 6.0. tāpēc, ja MaxROLAPOrConditions konfigurācija ir palielinājusies, ģenerētais XML dokuments var pārsniegt šo maksimālo dziļumu.
Risinājums
Šī problēma ir novērsta šajā SQL Server kumulatīvajā atjauninājumā:
Kumulatīvais atjauninājums 5 SQL Server 2016 RTM
SQL Server 2016 SP1 kumulatīvais atjauninājums 2
Kumulatīvais atjauninājums 4 SQL Server 2014 SP2
Kumulatīvais atjauninājums 10 SQL Server 2014 SP1
Par kumulatīvajiem SQL Server atjauninājumiem
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".
Papildinformācija
Šis labojums maina starpsummas XML dokumenta ģenerēšanas veidu, lai katrs papildu vai nosacījums nebūtu ligzdots iepriekšējā vai XML elementā. Tāpēc varat palielināt MaxROLAPOrConditions , kas pārsniedz 256. Tomēr joprojām pastāv praktiski ierobežojumi, kas attiecas uz izmantoto skaitu vai nosacījumiem. Pieaugot vai izmainoties nosacījumiem, ģenerētā SQL priekšraksta sarežģītība var pārsniegt relāciju datu bāzes servera ietilpību, radot jaunus kļūdas nosacījumus. Tālāk norādīti nosacījumu piemēri, kas var izraisīt jaunas kļūdas:
-
Pārsniegt maksimālo parametra parametru skaitu priekšrakstā
-
Pārsniegt maksimālo nosacījumu skaitu klauzulā WHERE
-
Kļūdas SQL vaicājuma virknes parsēšanā
-
Pārsniegt SQL vaicājuma virknes maksimālo lielumu
Tāpēc ieteicams veikt MaxROLAPOrConditions konfigurācijas vērtības pielāgojumus piesardzīgi.
Atsauces
Uzziniet par terminoloģiju , ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.