2

我仍在学习 OLAP、多维数据集和 SSAS 的基本知识,但我遇到了性能障碍,我不确定我是否理解正在发生的事情。

所以我有一个简单的多维数据集,它定义了两个简单的维度(类型和区域),第三个时间维度层次结构(去年->季度->月->日->小时->10-分钟)和一个度量(总和在名为 Count 的字段上)。数据库跟踪事件:它们发生的时间、类型、发生的地点。事实表是每 10 分钟间隔的事件的预先计算摘要。

所以我设置了我的多维数据集,并使用浏览器一次查看我的所有属性:随着时间的推移,每种类型的每个区域的总计数,从年份向下钻取到 10 分钟间隔。报告在性能上与浏览类似。

在大多数情况下,它足够活泼。但是随着我深入钻取树,查看每个级别需要更长的时间。最后在分钟级别,它似乎需要 20 分钟左右才能显示仅有的 6 条记录。但后来我意识到我可以在不等待的情况下查看其他分钟级别的钻取,所以看起来立方体正在计算整个表,这就是它需要这么长时间的原因。

我不明白。我预计进入 Quarters 或 Years 需要的时间最长,因为它必须汇总所有数据。转到最低的指标,大量过滤到大约 180 个单元格(6 个间隔,10 种类型,3 个区域),似乎应该是最快的。为什么多维数据集处理整个数据集而不仅仅是可见子集?为什么最高级别的聚合速度如此之快,而最低级别的聚合速度却如此之慢?

最重要的是,我可以通过配置或设计做些什么来改进它吗?

我刚刚想到的一些其他细节可能很重要:这是 SSAS 2005,在 SQL Server 2005 上运行,使用 Visual Studio 2005 进行 BI 设计。多维数据集(默认情况下)设置为完整 MOLAP,但未分区。事实表有 1,838,304 行,所以这不是一个疯狂的企业数据库,但它也不是一个简单的测试数据库。没有分区,所有的 SQL 东西都在一台服务器上运行,我可以从我的工作站远程访问它。

4

3 回答 3

0

当您查看分钟级别时 - 您是否在谈论从 12:00 到 12:10 的所有事件,无论何时?

我认为如果您需要更快地进行(因为显然它会扫描所有内容),您将需要使“时间”维度的两个部分正交 - 制作日期维度和时间维度。

如果你得到 1/1/1900 12:00 到 1/1/1900 12:10,我不确定那会是什么......

于 2010-07-07T20:58:41.743 回答
0

您是否验证了多维数据集的聚合以确保它们是正确的?任何简单的判断方法是,无论您使用哪种钻树,如果您获得相同数量的记录。

假设情况并非如此,Cade 建议制作日期维度和时间维度将是最明显的方法,但它是 SSAS 中更大的禁忌。有关详细信息,请参阅本文:http ://www.sqlservercentral.com/articles/T-SQL/70167/

希望这可以帮助。

于 2010-07-07T21:16:28.473 回答
0

我还会检查以确保您正在运行最新的 sp for sql server 2005

RTM 版本存在一些 SSAS 性能问题。

还要检查以确保您在时间维度和其他维度上正确定义了属性关系。

如果没有定义这些关系,SSAS 存储引擎将扫描更多必要的数据

更多信息: http: //ms-olap.blogspot.com/2008/10/attribute-relationship-example.html

如上所述,拆分日期和时间将显着降低日期维度的基数,这应该会提高性能并提供更好的分析体验。

于 2010-07-09T04:12:01.243 回答