我正在研究增加多维数据集中分区数量时处理时间的性能命中率。我从http://technet.microsoft.com/en-us/library/ms365363.aspx认识到理论上它可能超过2亿,但我预计任何增长都会受到影响。有没有办法我可以估计这个(我知道这是主题,我想我正在寻找一个公式)或者我是否需要证明它?
非常感谢,
萨拉
答案 0 :(得分:1)
分区通常用于提高性能,而不是降低性能,但你是对的,如果你有太多,那么你会受到性能影响。看起来你想知道如何找出多少分区太多了。
我将假设您所讨论的处理时间是处理多维数据集的时间,而不是查询多维数据集的时间。
分区的一般概念是,在重新处理多维数据集时,您只需处理一小部分分区。这使其成为一项巨大的性能提升。如果您正在处理大量分区,则处理单个分区的开销变得不可忽视。发生这一点可能取决于许多因素。与分区一起扩展的因素包括:
我认为最重要的因素是如何从数据源获取数据。如果您的来源不能很好地支持分区,那么您的表现将会非常糟糕。如果支持得很好,例如它具有关系数据库中的所有必要索引,然后您只会产生单个查询的开销。
所以我认为提出这个问题更合适的方法不是有多少分区太多,而是分区有多小太小?我想说如果一个分区中的事实数量是几百个,那么你可能有太多的分区。您不太可能想要制作那么多分区。我认为引用的20亿只是为了向你保证你永远不会到达那里。
关于你是否应该拥有这么多分区,我认为你不应该这样做。我认为你应该仔细分区,制作几百个分区,根据数据是否经常变化来划分数据。