תופעות
נניח שאתה משתמש במצב אחסון של OLAP יחסי (ROLAP) עבור קבוצת מדידים במופע של SQL Server 2014 או 2016 Analysis Services. לאחר הגדרת הערך של המאפיין advanced MaxRolapOrConditions ליותר מ-256, עליך להפעיל שאילתות MDX בקבוצת מדידה זו. במקרה זה, אתה מקבל שגיאות הדומות לבאות:
#Error מנתח DOM נכשל בטעינה ובניתוח של הזרם. כתובת URL: "סיבה:" הפעולה בוטלה: מקסימום-האילוץ ' עומק רכיב מופר '. Source: ' '. מיקום קובץ: 0. Line: 6.
סיבה
שירותי ניתוח מייצרים מסמך XML מדומה של SQL, שנותח לאחר מכן באמצעות גיליון סגנונות 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 שנמצא בשימוש על-ידי Analysis Services כדי לבנות את מסמך ה-xml הוא 256 ב-MSXML 6.0. לכן, כאשר התצורה של MaxROLAPOrConditions מוגברת, מסמך ה-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. לכן, תוכל להגדיל את MaxROLAPOrConditions מעבר ל-256. עם זאת, עדיין מגבלות מעשיות על מספר התנאים שבהם ניתן להשתמש. כאשר מספר התנאים גדל, המורכבות של משפט ה-SQL שנוצר עשויה לחרוג מהקיבולת של שרת מסד הנתונים היחסי, תוך גרימת מצבי שגיאה חדשים. להלן דוגמאות לתנאים שעלולים לגרום לשגיאות חדשות:
-
חריגה מהמספר המרבי של פרמטרים במשפט
-
חריגה מהמספר המרבי של תנאים במשפט where
-
שגיאות בניתוח מחרוזת שאילתת SQL
-
חריגה מהגודל המרבי של מחרוזת SQL query
לכן, אנו ממליצים שתתבצע בזהירות על כל ההתאמות לערך התצורה של MaxROLAPOrConditions .
הפניות
למד אודות המינוח של Microsoft המשמש לתיאור עדכוני תוכנה.