Ознаки
Припустимо, що ви використовуєте режим сховища реляційних OLAP (ROLAP) для групи мір в екземплярі служб аналізу SQL Server 2014 або 2016. Після встановлення значення для властивості Maxrolaptумови для більш ніж 256 можна виконати запит багатовимірного виразу для цієї групи мір. У цьому випадку з'являється повідомлення про помилки, які нагадують наведені нижче дії.
#Error аналізатор DOM не вдалося завантажити та проаналізувати потік. URL-адреса: "причина:" операцію перервано: "Максимальна" обмеження глибини елемента порушено. Джерело: "". Розташування файлу: 0. Лінія: 6.
Причина
Служба аналізу генерує псевдо-SQL XML-документ, який потім аналізується на аркуші стилів XML, щоб створити остаточний SQL-оператор, який передається до реляційних джерел. Створюючи початковий внутрішній XML-документ або умови для стовпця, створюються як вкладені елементи XML, як у наведеному нижче прикладі.
<OR> <Condition>column1 = value1</Condition> <OR> <Condition>column1 = value2</Condition> <OR> <Condition>column1 = value3</Condition> </OR> </OR></OR>
Властивість за замовчуванням Maxelementdepth для ОБ'ЄКТА MSXML DOM, що використовується службами аналізу для створення XML-документа, 256 у ФОРМАТІ MSXML 6.0. тому, коли збільшено конфігурацію Maxrolapropумови , згенерований XML-документ може перевищувати цю максимальну глибину.
Спосіб вирішення
Ця проблема усунена в такому сукупному оновленні для сервера SQL Server:
Сукупне оновлення 5 для SQL Server 2016 RTM
Сукупне оновлення 2 для SQL Server 2016 SP1
Сукупне оновлення 4 для SQL Server 2014 SP2
Сукупне оновлення 10 для SQL Server 2014 SP1
Відомості про Сукупне оновлення для сервера SQL Server
Кожне нове Сукупне оновлення для SQL Server містить усі поточні виправлення та всі виправлення системи безпеки, які були включені до попереднього сукупного оновлення. Ознайомтеся з найновішими сукупними оновленнями для сервера SQL Server:
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Додаткові відомості
Це виправлення змінює спосіб створення проміжного XML-документа, щоб кожний додатковий або умову не вкладені в попередньому або XML-елементі. Таким чином, ви можете збільшити умови Maxrolaporconditions за межами 256. Однак існують практичні обмеження щодо кількості або умов, які можна використовувати. Оскільки кількість або умови збільшується, складність SQL-виразу, що генерується, може перевищувати ємність сервера реляційних баз даних, викликаючи нові умови виникнення помилок. Нижче наведено приклади умов, які можуть спричинити нові помилки.
-
Перевищення максимальної кількості параметрів у операторі
-
Перевищення максимальної кількості умов у реченні WHERE
-
Помилки під час синтаксичного аналізу рядка запиту SQL
-
Перевищення максимального розміру рядка запиту SQL
Таким чином, ми рекомендуємо будь-які зміни, внесені до значення конфігурації Maxrolapro"умови , обережно.
Посилання
Відомості про термінологію , яку корпорація Майкрософт використовує для опису оновлень програмного забезпечення.