我试图用一个巨大的 mdx 查询询问 SQL Server 2008 上的多维数据集。
此查询包含 20 多个计算成员(在查询中定义)。
每个成员都包含对多维数据集的维度的限制。并非总是需要所有维度,但有时需要。
好吧,直到 16 个成员都可以正常工作。如果成员超过 16 个,则会出现消息错误:“查询优化器在查询计划中生成了太多子多维数据集”。
有没有办法解决这个错误?
谢谢!
朱丽叶塔
我试图用一个巨大的 mdx 查询询问 SQL Server 2008 上的多维数据集。
此查询包含 20 多个计算成员(在查询中定义)。
每个成员都包含对多维数据集的维度的限制。并非总是需要所有维度,但有时需要。
好吧,直到 16 个成员都可以正常工作。如果成员超过 16 个,则会出现消息错误:“查询优化器在查询计划中生成了太多子多维数据集”。
有没有办法解决这个错误?
谢谢!
朱丽叶塔
您陷入了性能瓶颈,我认为您的第一步是确定性能瓶颈是在公式引擎中还是在存储引擎中。为此,请确定公式引擎和存储引擎在缓存冷时执行性能不佳的 MDX 查询所需的时间量。存储引擎花费的时间可以通过将 SQL Server Profiler 跟踪中每个 Query Subcube 事件的经过时间相加来确定。公式引擎花费的时间可以通过从查询结束事件的总执行时间中减去存储引擎花费的时间来确定。
您已经有了一个开始,因为您知道第 16 个计算成员会导致错误发生,因此您可以从那里向后工作以确定限制子立方体事件的原因。
有关这方面的更多详细信息,请参阅本文:http://74.125.95.132/search?q=cache:XgP38c6S9-UJ: www.badlydressedboy.com/docs/IdentifyingAndResolvingMDXBottlenecksSSAS.doc+query+optimizer+generated+too+ many+subcubes+in+the+query+plan&cd=14&hl=en&ct=clnk&gl=us