Project REAL分析服务技术探讨
来源: 数据库 SQL Server | 作者: landluo | 发布: 2009-7-08 10:09
分割表
系统在分割表中存储实体表。一个分割表和每个度量组具有相同的结构。它包含相同的列,数据类型也完全一样。然而,分割表也可以包含数据的一个子集。例如,它可能只包含一星期的有效数据。
在这个章节中,除非有特别的说明,否则都认为分割表保持Week的级别。数据库中有个名称为vTbl_Fact_Store_Sales_WE_2004_11_27的关系表。在Project REAL数据库的分割表看上去违反了SQL Server 2000的基本实践原则。在Project REAL中,割表没有数据切片设置。在SQL Server 2000中,分割表必须有数据切片设置,以至于运行时引擎能够确定访问哪一个分割表。这有点类似于给查询优化器指定一个提示。在SQL Server 2005中,这不在是必须的了。现在,处理分割表会自动的构建MOLAP存储中的一个柱状图结构。这个结构标识出在分割表中包含了那些维度的成员。因而,只要存储方法是MOLAP,数据切片是一个可选的(和不使用的)属性。然而,在ROLAP存储中,或者当proactive caching包含一个ROLAP访问阶段的时候,数据切片仍可以使用。在这两个环境中,真实的实际数据,都没有被移动过,因此,系统没有机会标识一个成员。在这种情况下,如果你希望系统能够良好的运转,为分割表设置数据切片还是有必要的。
因为由MOLAP结构动态地决定数据切片,因此在SQL Server 2005中,一种新类型地分割技术是有可能存在的。最好的描述这种技术是通过一个简单的例子。
假定你正在设计的系统由一个包含1000个产品的产品维度。在这其中,前5个产品占到了80%的销售,而剩下的995个产品只占到了20%。这种用来显示基于产品的查询结果的终端用户查询样式分析是一种通用且有效的分割模式。例如,绝大部分报表包含了通过产品分类的详情。基于这种分析,你可以创建六个分割表。前五个分割表都分别对应一个排在前五位的产品,第六个分割表包含了其它所有的产品。创建这个包含所有其它产品的分割表是很容易的。在查询绑定中,在SQL语句中添加Where子句就可以实现。如下面的代码所示:
对于前五位的产品,使用如下的代码:
SELECT * FROM
WHERE SK_Product_ID =
对于查询包含其它产品的分割表,使用如下代码:
SELECT * FROM
WHERE SK_Product_ID NOT IN (,
)
这种技术,在SQL Server 2000分析服务上,需要大量的管理费用。在SQL Server 2000中,必须给分割表中的每一个成员指定数据切片,即使哪里有几千个成员。为了实现这个例子,你不得不创建一个包含995个成员的分割表。当一个新的成员被添加到维度中的时候,更新这个列表也是管理上面对的一个严峻问题。在SQL Server 2005分析服务中,自动在分割表中构建数据切片的功能大大消除了管理上的成本。
另外面对的一个挑战是,当创建一个带有大量分割表的系统时,如何创建几百个分割表。在SQL Server 2000中,分割表可使用分析管理器(一个非常耗时,并会有潜在错误的过程)创建,而且每次只能创建一个。或者可以让开发人员编写一个应用程序来自动的创建。
在SQL Server 2005中,SQL Server 管理环境能够一次创建多个分割表,甚至是几百个分割表。一般情况下,当你创建一个分割表的时候,你需要使用那些定义在数据源视图中的表。毕竟,这也是数据源视图存在的原因。然而,这也不是必须的。在Store Sales度量组(请确认至少已经提供或者处理了一个分割表)上创建一个分割表,然后检查对话框,如图14所示:

图14:创建一个新的分割表
注意,虽然对话框默认使用数据源视图,但你也能在数据源中查找和定位表。选择数据源然后单击Find,如图15所示:

图15:查找一个用于分割的实际表
对话框列举了在数据源中能匹配包含在度量组“模板”表(或视图)的元数据(列和数据类型)的表。见图15。如果你选择了多个条目,系统会为每个选中的表创建分割表。

图16:选择多个创建分割表的实际表
这回带来两个重要的侧面影响。首先,这意味着,不是所有的对象都来自于数据源视图。在Project REAL中,这意味着我们不必包含所有的23个基于周的分割表。我们只是包含了一个模板对象,用来创建度量组。第二,这也是节约时间的部分,你能够通过一个简单步骤就创建上百个分割表。仅仅只是选择多个对象,你就从一个操作中获得了大量的分割表。只是要求你在这之前已完成至少一个分割表的处理,以至于Find操作能够定位到相匹配的表。也就是这些,我们就可以通过一次点击,就能创建上百个分割表了。
共20页: 13 下一页
【内容导航】
原文:Project REAL分析服务技术探讨(13)
