الأعراض
افترض انك تستخدم وضع التخزين العلائقي ل OLAP (ROLAP) لمجموعه مقياس في مثيل SQL Server 2014 أو 2016 Analysis Services. بعد تعيين قيمه خاصيه ماكسرولابوركونديشنز المتقدمة إلى أكثر من 256 ، يمكنك تنفيذ استعلامات MDX علي مجموعه القياس هذه. في هذه الحالة ، تحصل علي أخطاء تشبه ما يلي:
#Error فشل محلل DOM في تحميل التدفق وتحليله. URL: ' "السبب:" تم إجهاض العملية: تم انتهاك قيد "الحد الأقصى للعناصر". Source (المصدر): ''. موضع الملف: 0. Line: 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>
ان خاصيه ماكسيليمينتديبث الافتراضية لكائن MSXML DOM التي يتم استخدامها بواسطة Analysis Services لإنشاء مستند XML هو 256 في MSXML 6.0. التالي ، عند زيادة تكوين ماكسرولابوركونديشنز ، يمكن ان يتجاوز مستند 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 أن هذه المشكلة تحدث في منتجات Microsoft المسردة في المقطع "تنطبق على".
مزيد من المعلومات
يعمل هذا الإصلاح علي تغيير طريقه إنشاء مستند XML المتوسط ، بحيث لا يتم تداخل كل شرط أو الشروط الاضافيه في عنصر السابق أو XML. لذلك ، يمكنك زيادة الماكسرولابوركونديشنز بعد 256. ومع ذلك ، لا يزال هناك قيود عمليه لعدد الشروط التي يمكن استخدامها. بمجرد زيادة عدد الشروط أو الشرط ، قد يتجاوز تعقيد جمله SQL التي يتم إنشاؤها سعة خادم قاعده البيانات العلائقية ، مما يؤدي إلى حدوث حالات خطا جديده. فيما يلي أمثله علي الشروط التي قد تتسبب في حدوث أخطاء جديده:
-
تجاوز الحد الأقصى لعدد المعلمات في عبارة
-
تجاوز الحد الأقصى لعدد الشروط في عبارة where
-
أخطاء في تحليل سلسله استعلام SQL
-
تجاوز الحد الأقصى لحجم سلسله استعلام SQL
ولذلك ، نوصي باجراء اي تعديلات علي قيمه تكوين ماكسرولابوركونديشنز بحذر.
المراجع
تعرف علي المصطلحات التي تستخدمها Microsoft لوصف تحديثات البرامج.