Project REAL分析服务技术探讨(3)
2007-05-15 09:28:13 来源:WEB开发网在这个章节中,除非有特别的说明,否则都认为分割表保持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子句就可以实现。如下面的代码所示:
赞助商链接