分区与多个多维数据集的性能

时间:2012-11-30 15:30:02

标签: sql-server performance ssas cube data-partitioning

鉴于这种情况,

三个国家/地区的销售信息。

CountryA: 0.9M records.
CountryB: 0.8M records.
CountryC: 0.7M records.

理论上,以下方法之间的预期性能差异(*)是什么?

  1. 每个国家/地区只有一个分区的单个多维数据集。
  2. 三个立方体,每个国家一个。
  3. (*)对于单个国家/地区的查询,不在课程中。

1 个答案:

答案 0 :(得分:2)

只要对分区方法的查询正确地定位到适当的分区,就应该没有什么性能差异。

如果事实/维度关系相同,请使用分区方法。这样可以更轻松地跨分区返回结果(例如,第1季度的TotalRevenue或ProductA的TotalCost)。如果将它们分成单独的立方体,这些将更难以计算。对于使用Excel数据透视表或报表生成器等自助服务研究工具的分析师来说,定位多个多维数据集也会更加复杂。

以下是SQL CAT团队建议的分区大小:

在大多数情况下,分区的记录大小应少于2000万条,每个度量值组的总分区数应少于2,000个。此外,避免定义包含少于两百万条记录的分区。分区太多会导致元数据操作减慢,分区太少会导致错过并行机会。

你显然不在2000万的记录推荐范围内。另外,我还会查看每个分区的数据大小。较小的多维数据集(只有必要的度量,正确定义的属性关系和层次结构等)可以很好地执行每个分区的更多记录。

以下是SQL CAT最佳实践的完整列表:

http://sqlcat.com/sqlcat/b/top10lists/archive/2007/09/13/analysis-services-query-performance-top-10-best-practices.aspx