Gejala
Misalnya Anda menggunakan mode penyimpanan OLAP (ROLAP) Relational untuk grup pengukuran dalam contoh SQL Server 2014 atau 2016 Analysis Services. Setelah Anda mengatur nilai properti Maxrolaporconditions Advanced untuk lebih dari 256, Anda menjalankan kueri MDX pada grup pengukuran tersebut. Dalam kasus ini, Anda menerima kesalahan yang menyerupai yang berikut ini:
#Error parser DOM gagal memuat dan mengurai aliran. URL: ' ' alasan: ' operasi dibatalkan: batasan Max-Element-Depth yang dilanggar. ' Sumber: ' '. Posisi file: 0. Baris: 6.
Penyebab
Analysis Services menghasilkan dokumen XML pseudo-SQL, yang kemudian diuraikan melalui lembar gaya XML untuk menghasilkan pernyataan SQL akhir yang dikirim ke sumber relasional. Saat membuat dokumen XML internal awal, atau kondisi untuk kolom dihasilkan sebagai elemen XML bertumpuk seperti dalam contoh berikut:
<OR> <Condition>column1 = value1</Condition> <OR> <Condition>column1 = value2</Condition> <OR> <Condition>column1 = value3</Condition> </OR> </OR></OR>
Properti Maxelementdepth default untuk objek Dom MSXML yang digunakan oleh Analysis Services untuk membuat dokumen xml adalah 256 dalam MSXML 6.0. oleh karena itu, ketika konfigurasi Maxrolaporconditions meningkat, dokumen XML yang dihasilkan dapat melebihi kedalaman maksimum ini.
Pemecahan Masalah
Masalah ini telah diperbaiki dalam pembaruan kumulatif berikut ini untuk SQL Server:
Pembaruan kumulatif 5 untuk SQL Server 2016 RTM
Pembaruan kumulatif 2 untuk SQL Server 2016 SP1
Pembaruan kumulatif 4 untuk SQL Server 2014 SP2
Pembaruan kumulatif 10 untuk SQL Server 2014 SP1
Tentang pembaruan kumulatif untuk SQL Server
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Status
Microsoft telah melakukan konfirmasi bahwa masalah ini timbul pada produk Microsoft yang tertera pada bagian "Berlaku untuk".
Informasi Selengkapnya
Perbaikan ini mengubah cara dokumen XML menengah dihasilkan, sehingga setiap tambahan atau kondisi tidak bertumpuk dalam elemen sebelumnya atau XML. Oleh karena itu, Anda bisa meningkatkan Maxrolaporconditions Beyond 256. Namun, masih ada keterbatasan praktis untuk jumlah atau kondisi yang bisa digunakan. Karena jumlah atau kondisi bertambah, kompleksitas pernyataan SQL yang dihasilkan mungkin melebihi kapasitas server database relasional, yang menyebabkan kondisi kesalahan baru. Berikut ini adalah contoh kondisi yang mungkin menyebabkan kesalahan baru:
-
Melebihi jumlah maksimum parameter dalam sebuah pernyataan
-
Melebihi jumlah maksimum kondisi dalam klausul Where
-
Kesalahan dalam menguraikan string kueri SQL
-
Melebihi ukuran maksimum string kueri SQL
Oleh karena itu, kami menyarankan agar setiap penyesuaian nilai konfigurasi Maxrolaporconditions dibuat dengan hati-hati.
Referensi
Pelajari tentang terminologi yang digunakan oleh Microsoft untuk menjelaskan pembaruan perangkat lunak.