导航属性查询效率低,因为是Join之后根据非关键字段进行查询,如果考虑性能方面的问题,则需要将此属性直接作为特征维度即可
特征与导航属性的区别:
我们是将客户名称做成导航属性还是直接做成特征的区别:
特征查询效率高(由于特征的值就在Fact表时在,不需要到特征的主属性P表里去读取了,所以效率高),但灵活性差
导航属性效率低,但灵活性高(同一数据只存储在主数据表里,如果客户名称变化了,则只需要修改主数据表里的数据,则所有引用该主数据的报表显示时全部更新,所以灵活性高)
显示属性仅只起显示作用,没有什么任何功能:如通过它时行过滤、分组汇总等,但导航属性就具有特征的一切的功能,在Query 设计界面里导航属性会显示在与它所对应特征的同一维度下面,供设计时使用
将某个特征的属性做成导航属性则需要通过以下两步:
如果要将某个属性作成过滤条件,如这里需要根据客户的地址来过滤,则需要在BW里将客户地址属性设置成导航属性即可。操作如下:
首先去掉客户地址所对应的“仅属性Attribute Only”:
再在客户InfoObject界面中,对客户地址属性进行导航属性设置:
当设置好后,可以去Cube里看到该导航属性,并将导航属性的勾勾上: