成员属性在mdx解决方案中对数据的过滤起到了很大的作用,如果处理得当的话,能在完成业务需求的同时极大的精简cube。
利用一、成员属性作为附加信息:
如果一个维度属性没有必要直接显示给最终的用户,当然更没有必要做数据聚合、结果集叉乘等,而仅仅需要的是查询的数据单元的附加信息,此时成员属性再合适不过了。例如:查询成绩排名前十的学生。需要返回的仅仅是学生的名字和成绩。但是因为业务需要要求能从这些学生名字知道他们的性别,此时,可以将学生的性别属性作为成员属性。
那么成员属性作为附加信息在查询时有什么变化呢?这里通过分析xmla查询结果集能得出结果。如果没有成员属性的查询。如下:
则返回的数据结果中hierarchy info中的信息如下:
返回的层次结构成员信息如下:
如果附加上成员属性查询,如下:
则返回的hierarchy info 如下:
在层次结果信息中多出了成员属性的描述。
返回的层次结构成员信息如下:
在层次结构成员中多出了成员属性的数据节点。
通过以上的对比不难看出 [Dim Customer].[Dim Customer].[First Name]的值也被附加在结果集中返回到了客户端,客户端得到这些信息后便可以满足上述提出的需求。同时,如果在设计cube时将该属性的AttributeHierarchyEnabled属性设置为false,则会减少对该属性成员的索引,达到精简的目的。
后续作用待续……
---------slob------------