היום נתקלתי במאמר נפלא של mosha שהוא גורו בתחום של mdx.
הוא דיבר על פונקצית rank ועל כך שהוא ראה אנשים כותבים את הפונקציה עם שימוש ב
Order, זה גורר חישוב מחדש לכל תא שזה אומר ביצועים גרועים
RANK([Employee].[Employee].CurrentMember, ORDER([Employee].[Employee].[Employee].MEMBERS, [Measures].[Reseller Sales Amount], BDESC))
הדרך הנכונה יותר היא:
RANK([Employee].[Employee].CurrentMember, [Employee].[Employee].[Employee].MEMBERS, -[Measures].[Reseller Sales Amount])
ואם יש לכם אפשרות צרו set מוכן מראש כי זה הכי מהר.