我正在尝试使用巨大的mdx查询来询问SQL Server 2008上的多维数据集。
此查询包含20个以上的计算成员(在查询中定义)。
每个成员都包含多维数据集上维度的限制。并不总是需要所有尺寸,但有时需要它。
嗯,直到16名成员才能正常工作。超过16个成员出现消息错误: “查询优化器在查询计划中生成了太多的子多维数据集”。
有没有办法解决这个错误?
谢谢!
朱丽叶
答案 0 :(得分:1)
您陷入了性能瓶颈,我认为您的第一步是确定性能瓶颈是在公式引擎还是存储引擎中。要实现此目的,请确定公式引擎和存储引擎在缓存冷却时执行性能较差的MDX查询所需的时间。可以通过将SQL Server Profiler跟踪中的每个Query子立方体事件的已用时间相加来确定存储引擎所花费的时间。公式引擎所花费的时间可以通过从Query End事件的总执行时间中减去存储引擎所花费的时间来确定。
您已经有了一个开始,因为您知道第16个计算成员会导致错误发生,因此您可以从那里向后工作以确定限制子多维数据集事件的内容。