複查維度階層類型

每個 ASO 維度都會獲指派階層類型:「已儲存」、「動態」或「多個」。系統會儲存具有「已儲存」階層類型之維度的元素,並且以聚總檢視具體化聚總。

「動態」維度的元素無法聚總到檢視。在「多個」類型維度中,層代 2 (最上層節點的子項) 會設定為「已儲存」或「動態」。針對「多個」階層類型,您可以將階層類型選擇為層代 2 的「已儲存」或「動態」。第一個層代 2 子項 (通常是主要階層) 的類型必須為「已儲存」。針對這類階層,您應該編輯所有層代 2 成員,以及選取「已儲存」(偏好) 或「動態」作為階層類型。

偏好使用「已儲存」維度,以確保最佳效能。因為您選擇的階層類型也會影響可建立的聚總檢視數目,所以 Oracle 建議下列動作:

  • 只使用「已儲存」類型維度 (可能的話)。
  • 如果無法使用「已儲存」類型維度,則請使用「多個」(可能的話)。
  • 針對「多個」階層維度,將「層代 2」設定為「已儲存」,而非「動態」(可能的話)。
  • 只有在無法使用「多個」階層類型時,才使用「動態」維度。
  • Account 維度必須一律是「動態」,因為它是 ASO 壓縮維度。這無法進行變更。

維度轉換中階層類型的影響

例如,將維度從「動態」轉換為「多個」時,節點成員 (Gen1) 會變成「僅限標籤」。如果動態維度只有一個第 2 代子項 (+),則這項轉換將會作用。如果您需要 Gen1 (節點) 層級的總計,則可能無法進行從「動態」到「多個」的維度轉換。

設定階層類型

會針對每個維度的最上層節點成員設定階層類型 (「已儲存」、「動態」或「多個」)。無論如何,子代都會繼承父項的階層類型。因此,會為整個維度設定「已儲存」和「動態」階層類型。針對給定「多個」階層類型的維度,會將每個層代 2 成員 (節點成員子項) 都設定為「動態」或「已儲存」。

「已儲存」階層類型的考量包含下列資訊:

  • 「已儲存」階層類型可以包含整合運算子 + (加) 和 ~ (忽略)。
  • 只有在成員的父項設定為 LABEL_ONLY 時,才可以在「已儲存」階層類型中使用不整合或忽略運算子。

「動態」階層類型的考量包含下列資訊:

  • 具有「動態」階層類型的成員可以使用任何整合運算子,包含加和忽略。
  • 您可以在「動態」階層類型內使用公式。
  • 在部分情況下,共用成員可能存在於「已儲存」階層類型內,但可能需要位於「動態」階層 (請參閱共用成員和階層類型)。
  • 避免產生大型維度「動態」。

使用公式和階層類型

雖然可以在「動態」階層類型內使用公式,但是務必注意整個維度不需要是「動態」;只有公式所在的階層才需要是「動態」。

可能的話,請在維度包含公式時使用「多個」作為階層類型。在層代 2,請只將維度內包含公式的階層設為「動態」;其他則設為「已儲存」。

Scenario 維度 (可能具有「實際」、「預算」、「預測」和一些公式) 是不錯的範例。通常,這些是層代 2 成員。在此情況下,請將 Scenario 設為「多個」階層類型、設定具有公式「動態」的層代 2 成員,以及將所有其他成員都設為「已儲存」。

共用成員和階層類型

共用成員可能會影響 ASO 資料庫內階層類型的決策。雖然「已儲存」維度不能有共用成員,但「多個」維度類型內的「已儲存」階層可以有共用成員。

在「多個」維度中設定階層類型時,盡可能將最大數目的階層設定為「已儲存」類型 (設定於層代 2)。

如果共用成員僅共用一次且是與層級 0 成員共用,則共用成員可以存在於「多個」維度內的「已儲存」階層中。不過,「已儲存」階層內的共用成員可能會有下列限制,而這需要您將「多個」維度內的層代 2 階層設定為「動態」:

  • 為了確保未重複計算值,已儲存階層不能包含相同共用成員的多個複本。
  • 「已儲存」階層不能同時包含相同成員的已儲存和共用版本。
  • 只有在「動態」階層成員是沒有公式的層級 0 成員時,「已儲存」階層才能包含「動態」階層成員的共用例項。換句話說,「已儲存」階層不能包含上層成員的共用成員或具有公式的成員。
  • 如果每個共用成員僅使用一次且為層級 0 成員的共用例項,則共用成員可以存在於「多個」維度內。

只有在無法將階層設為「已儲存」時,才將您的共用成員階層 (非維度) 設為「動態」。不過,在許多情況下,共用成員可能存在於所有層代 2 成員設為「已儲存」的「多個」維度,例如,只能在所有共用階層內使用共用成員一次。