Príznaky
Predpokladajme, že používate režim ukladacieho priestoru relačných OLAP (ROLAP) pre skupinu opatrení v inštancii služby SQL Server 2014 alebo 2016 Analysis Services. Keď nastavíte hodnotu vlastnosti MaxRolapOrConditions Advanced na viac ako 256, spustíte dotazy MDX v tejto skupine opatrení. V tomto prípade sa dostávajú chyby, ktoré sa podobajú takto:
#Error analyzátora DOM sa nepodarilo načítať a analyzovať prúd údajov. URL: ' ' dôvod: ' operácia bola prerušená: obmedzenie maximálneho prvku-hĺbka je porušené. Zdroj: ' '. Pozícia súboru: 0. Riadkovanie: 6.
Príčina
Analýza služby generuje pseudo-SQL XML dokument, ktorý sa potom analyzuje prostredníctvom hárka so štýlmi XML na generovanie záverečného príkazu SQL, ktorý sa odošle do relačného zdroja. Pri vytváraní počiatočného interného dokumentu XML alebo podmienky pre stĺpec sa generujú ako vnorené prvky XML, ako je to uvedené v nasledujúcom príklade:
<OR> <Condition>column1 = value1</Condition> <OR> <Condition>column1 = value2</Condition> <OR> <Condition>column1 = value3</Condition> </OR> </OR></OR>
Predvolená vlastnosť MaxElementDepth pre objekt MSXML dom, ktorý používajú služby Analysis Services na zostavenie dokumentu XML, je 256 v MSXML 6.0. preto pri zväčšení konfigurácie MaxROLAPOrConditions môže generovaný dokument XML prekročiť túto maximálnu hĺbku.
Riešenie
Tento problém je vyriešený v nasledujúcej kumulatívnej aktualizácii pre SQL Server:
Kumulatívna aktualizácia 5 pre SQL Server 2016 RTM
Kumulatívna aktualizácia 2 pre SQL Server 2016 SP1
Kumulatívna aktualizácia 4 pre SQL Server 2014 SP2
Kumulatívna aktualizácia balíka 10 pre SQL Server 2014 SP1
Informácie o kumulatívnych aktualizáciách pre SQL Server
Každá nová Kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúcej kumulatívnej aktualizácie. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:
Stav
Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.
Ďalšie informácie
Táto oprava zmení spôsob vygenerovania priebežného XML dokumentu tak, aby boli všetky ďalšie alebo podmienky vnorené v predchádzajúcom alebo XML prvku. Z tohto dôvodu môžete zvýšiť MaxROLAPOrConditions za 256. Existujú však aj praktické obmedzenia počtu alebo podmienok, ktoré možno použiť. Vzhľadom na to, že počet alebo podmienky sa zvyšujú, zložitosť vygenerovaného príkazu SQL môže byť vyššia ako kapacita relačného databázového servera, čo spôsobuje nové chybové podmienky. Nižšie sú uvedené príklady podmienok, ktoré môžu spôsobiť nové chyby:
-
Prekročenie maximálneho počtu parametrov v príkaze
-
Prekročenie maximálneho počtu podmienok v klauzule where
-
Chyby pri analýze reťazca SQL dotazu
-
Prekročenie maximálnej veľkosti reťazca dotazu SQL
Preto odporúčame, aby sa vykonali všetky úpravy konfiguračnej hodnoty MaxROLAPOrConditions s opatrnosťou.
Odkazy
Oboznámte sa s terminológiou , ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.