我们在 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 的新手,所以我想知道我们是否只是遇到了系统的边界,或者是否有任何方法可以提高效率?我们需要它来处理超过 1M 的记录,所以我们想知道这是否是要走的路。
希望我很清楚,但如果我不清楚,请告诉我。