属性階層の非表示化と無効化
既定では、ディメンションの属性ごとに属性階層が 1 つ作成されます。また、それぞれの階層はディメンションのファクト データで使用できます。 属性階層は、"All" レベルと、その階層のすべてのメンバーを含む詳細レベルで構成されます。 既に学習したように、これらの属性をユーザー定義階層として整理し、キューブ内にナビゲーション パスを設けることができます。 状況によっては、一部の属性とその階層を無効にしたり、非表示にしたりする必要が生じます。 たとえば、社会保障番号 (身分登録番号)、給与、誕生日、ログイン情報などは、キューブ情報の生成には必要のない属性です。 一般に、これらの情報は、特定の属性メンバーの詳細情報としてのみ表示されます。 したがって、これらの属性階層を非表示にして、各属性のメンバー プロパティとしてのみ表示されるようにする必要があります。 また、顧客名、郵便番号など他の属性メンバーは、属性階層に個別に表示するのではなく、ユーザー階層からのみ表示されるようにする必要があります。 このような処理をするのは、属性階層内の独立したメンバーが非常に多いためです。 処理パフォーマンスを向上させるため、ユーザーが参照しない属性階層を無効にしてください。
AttributeHierarchyEnabled プロパティは、属性階層を作成するかどうかを指定します。 このプロパティを False に設定すると、属性階層は作成されず、その属性はユーザー階層のレベルとして使用できなくなります。つまり、属性階層がメンバー プロパティとしてのみ存在するようになります。 ただし、属性階層を無効にしても、その属性階層を使用して別の属性のメンバーを整理することはできます。 AttributeHierarchyEnabled プロパティを True に設定している場合は、ユーザー定義階層で属性階層が使用されているかどうかに関係なく、AttributeHierarchyVisible プロパティの値によりその属性階層の表示、非表示が決定されます。
属性階層を有効にしている場合は、さらに次の 3 つのプロパティに値を指定できます。
IsAggregatable
既定では、すべての属性階層に (All) レベルが定義されます。 有効な属性階層の (All) レベルを無効にするには、このプロパティを False に設定します。
注 IsAggregatable プロパティが False に設定された属性は、ユーザー定義階層のルートとしてのみ使用できます。また、この属性には、指定された既定メンバーを割り当てる必要があります (これを行わなかった場合は、Analysis Services エンジンによって既定メンバーが選択されます)。
AttributeHierarchyOrdered
既定では、処理中に Analysis Services が有効な属性階層のメンバーを整理し、Name や Key などの OrderBy プロパティの値に基づいてメンバーを格納します。 メンバーが順不同でもよい場合は、このプロパティの値を False に設定することにより、パフォーマンスを向上させることができます。
AttributeHierarchyOptimizedState
既定では、処理中に Analysis Services が有効な各属性階層のインデックスを作成します。これにより、クエリのパフォーマンスが向上します。 属性階層を表示する予定がない場合は、このプロパティの値を NotOptimized に設定することにより、パフォーマンスを向上させることができます。 ただし、非表示の属性をディメンションのキー属性として使用する場合は、属性メンバーのインデックスを作成することでパフォーマンスが向上します。
属性階層が無効になっている場合は、これらのプロパティが適用されません。
このトピックの実習では、Employee ディメンションの社会保障番号のほか、表示する必要のない他の属性を無効にします。 次に、Customer ディメンションの顧客名と郵便番号の属性階層を非表示にします。 ユーザー階層とは関係なく、これらの階層の属性メンバーが多いと、階層の表示が非常に遅くなります。
Employee ディメンションの属性階層プロパティの設定
Employee ディメンションのディメンション デザイナーに切り替え、[ブラウザー] タブをクリックします。
[階層] ボックスの一覧に、次の属性階層が表示されていることを確認します。
Base Rate
Birth Date
Login ID
Manager SSN
SSN
[ディメンション構造] タブに切り替え、[属性] ペインで次の属性を選択します。 Ctrl キーを押しながらクリックすると、複数のメジャーを選択できます。
Base Rate
Birth Date
Login ID
Manager SSN
SSN
[プロパティ] ウィンドウで、選択した属性の AttributeHierarchyEnabled プロパティの値を False に設定します。
[属性] ペインを見ると、各属性のアイコンが変わり、無効になっていることがわかります。
次の図では、選択した属性の AttributeHierarchyEnabled プロパティが False に設定されています。
[ビルド] メニューの [Analysis Services Tutorial の配置] をクリックします。
処理が完了したら [ブラウザー] タブに切り替え、[再接続] をクリックします。その後、変更後の属性階層を表示してみてください。
変更した属性のメンバーは、[階層] ボックスの一覧に属性階層として表示されません。 無効にしたいずれかの階層属性をユーザー階層のレベルとして追加しようとすると、ユーザー定義階層に追加するには、その属性階層を有効にしなければならないことを知らせるエラーが表示されます。
Customer ディメンションの属性階層プロパティの設定
Customer ディメンションのディメンション デザイナーに切り替え、[ブラウザー] タブをクリックします。
[階層] ボックスの一覧に、次の属性階層が表示されていることを確認します。
Full Name
Postal Code
[ディメンション構造] タブに切り替え、[属性] ペインで次の属性を選択します。複数の属性を選択するときは、Ctrl キーを押しながら各属性をクリックします。
Full Name
Postal Code
[プロパティ] ウィンドウで、選択した属性の AttributeHierarchyVisible プロパティの値を False に設定します。
これらの属性階層のメンバーはファクト データの多次元化に使用されるため、メンバーを整理して最適化することによりパフォーマンスが向上します。 このため、これらの属性のプロパティは変更しないでください。
次の図では、AttributeHierarchyVisible プロパティが False に設定されています。
[属性] ペインの Postal Code 属性を、[階層とレベル] ペインの Customer Geography ユーザー階層 (City レベルのすぐ下) にドラッグします。
属性が非表示に設定されていても、ユーザー階層にレベルとして追加することができます。
[ビルド] メニューの [Analysis Services Tutorial の配置] をクリックします。
配置が正常に完了したら、Customer ディメンションの [ブラウザー] タブに切り替え、[再接続] をクリックします。
[階層] ボックスの一覧から、変更した属性階層のいずれかを選択してみます。
[階層] ボックスの一覧には、変更した属性階層は何も表示されないはずです。
[階層] ボックスの一覧で [Customer Geography] をクリックし、ブラウザー ペインに各レベルを表示します。
ユーザー定義階層には、非表示にした Postal Code レベルと Full Name レベルが表示されます。
このレッスンの次の作業
関連項目
その他の技術情報
Designing and Implementing How-to Topics (Analysis Services - Multidimensional Data)