【发布时间】:2013-10-09 15:20:49
【问题描述】:
我们在 MS SQL Server 2008 R2 中使用 SSAS 来存储包含公司数据的多维数据集。我们将此多维数据集用作 Web 应用程序中枢轴网格的数据源并生成“市场渗透”报告。
用户可以上传公司 ID 列表。 ID 存储在数据库中。
当用户想要生成“市场渗透”报告时,他或她必须指定一个充当“选择”的列表和一个充当“市场”的列表。
提交后,两个列表的 ID 最终都作为多维数据集中的计算成员,使用如下 MDX 语句:
CREATE MEMBER [Prospects].[Measures].[selectids] AS COALESCEEMPTY(SUM( {
[Dim Bedrijf].[BronId].&[1234], [Dim Bedrijf].[BronId].&[1235],
...., [Dim Bedrijf].[BronId].&[3456]}, [Measures].[Fact Bedrijven Count] ),0)
创建这些成员后,将创建更多用于计算报表中的指标(使用已在多维数据集中定义的成员和维度)。最后,还有一个返回必要数据的 select 语句。
当任一列表中的 ID 数量小于 100k 时,这可以正常工作。如果数字变大,我们就会开始出现超时错误。超时设置为 1 小时(报告在独立于 Web 应用的 win 服务中生成)。
我还是 SSAS 的新手,所以我想知道我们是否只是遇到了系统的边界,或者是否有任何方法可以提高效率?我们需要它来处理超过 100 万条记录,所以我们想知道这是否是要走的路。
希望我很清楚,但如果我不清楚,请告诉我。
【问题讨论】: