計算選取的元組
只要選取元組,您即可將 Essbase 計算的焦點放在作用中 Smart View 方格,將其範圍限制在您區塊儲存立方體的特定資料截塊。
若要瞭解元組計算,請參閱以下小節:
如需在計算命令檔中使用 @GRIDTUPLES 的語法,請參閱 FIX...ENDFIX 。
元組計算的使用案例
只要選取元組,您即可將 Essbase 計算的焦點放在作用中 Smart View 方格,將其範圍限制在您區塊儲存立方體的特定資料截塊。
選擇元組有助於最佳化跨維度的不對稱方格計算,以避免過度計算。
Essbase 計算元組與 MDX 查詢中使用的元組不同。計算效能和立方體大小主要取決於立方體中的區塊數目 (給定的特定區塊大小)。因此,只會針對稀疏成員組合指定計算元組。此外,為了方便撰寫計算命令檔,一個計算元組設定可以包括單一稀疏維度的多個成員。例如,若您指定 ("New York", "California", "Actual", "Cola") 作為計算元組,則會計算下列儲存格交集:
"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"請考量下列對稱方格。此為對稱方格,因為方格中每項產品都有相同的市場與案例 (Actual)。

以下為不對稱方格,因為方格中 Diet Cola 這項產品的市場數少於 Cola 產品的市場數。

當 FIX 敘述句或 Smart View 方格檢視點 (POV) 包含一個以上的維度時,預設計算範圍會計算 FIX 或方格中所有成員的交叉乘積 (所有可能組合)。也就是說,其產品與市場組合取自於方格的 POV 導向計算,將計算以下所有資料列成員組合:
Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Massachusetts"
"Diet Cola"->"Florida"
"Diet Cola"->"Connecticut"
"Diet Cola"->"New Hampshire"
這有可能產生超乎所需的計算活動。如果您只要計算方格中顯示的組合,可以指定要計算的元組而縮小計算範圍。計算元組還可減少計算時間和縮減立方體大小。
Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Florida"
瞭解元組式計算
計算元組是一種代表二或多個稀疏維度之成員資料截塊的方式,此類資料截塊將用於 Essbase 區塊儲存計算。
有效的計算元組範例:
("Diet Cola", "New York")("Diet Cola", "Cola", Florida)(Cola, "New Hampshire")
當您撰寫 MDX 表示式時,應注意套用於 MDX 的以下幾項元組限制:
- 一個 MDX 元組只能包含每個維度的單一成員
- 一個 MDX 集中的所有元組都必須以相同的順序呈現相同的維度
不過,如果您選取的是計算命令檔中的元組,這些要求會為了方便起見而較為寬鬆。您可以自由編寫元式表示式,而元組合可以描述成員清單,如下列元組合:(@Children(East), Cola)。
選取元組進行檢視點計算
選取元組的簡便方法就是將它們明確插入計算命令檔中,當作 FIX 敘述句內的清單。
請記得 FIX 敘述句的格式如下:
FIX (fixMbrs)
COMMANDS ;
ENDFIX
下面的 FIX 敘述句中,命令區塊開頭的前面指定了兩個元組。這兩個元組以大括弧 ({ }) 括住,分隔成一組,此為元組集合。
FIX({
(@Children(East), Cola),
("New York", Florida, "Diet Cola")
})
Sales (Sales = Sales + 10;);
ENDFIX
另一種方法是透過相關資訊環境,根據計算時期 Smart View 方格 POV 中存在的成員來選取元組。在計算命令檔中,將 @GRIDTUPLES 函數當作引數提供給 FIX,即可利用此方法選取元組。
FIX ({@GRIDTUPLES(Product, Market)})
Sales (Sales = Sales + 10;);
ENDFIX
若是從 Smart View 針對下面的方格執行此計算命令檔,則系統只會計算顯示的產品與市場組合。例如,不會對 "Diet Cola"->Massachusetts 進行計算,因為它並未明確顯示在方格中。請注意,即使方格中只顯示 Actual,系統還是會計算全部的案例 (此範例立方體中的第三個稀疏維度)。這是因為 Scenario 維度不是計算命令檔中 GRIDTUPLES 敘述句的一部分。

不論是使用明確的元組清單,還是使用 @GRIDTUPLES 函數來選取元組,選取元組只適用於 FIX…ENDFIX 計算命令的相關資訊環境。以下為擴充的 FIX 敘述句語法以選取元組:
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
- tupleList - 以逗號分隔的一組元組。
- dimensionList - 至少有兩個稀疏維度,其作用中 Smart View 方格中的成員用於定義計算區域。(在計算命令檔中,您只能使用稀疏維度以定義元組。)
- fixMbrs - 成員或成員清單。
縮小計算範圍的元組選擇範例
您可以使用 Smart View 方格和 Essbase 計算命令檔 FIX 敘述句,根據方格檢視點 (POV) 計算選取的成員元組。或者,您也可以在 FIX 敘述句中明確輸入元組組合,移除特定 Smart View 方格的相依性以定義計算範圍。
計算選取的元組可協助您有效地使用計算命令檔與 Smart View 方格中的不對稱區域。
參考下列範例:
- 無元組選擇 - 根據目前的 Smart View 網格檢視點 (POV),以預設方式計算。這項計算不限任何特定元組。
- 選取具名稀疏維度 - 計算計算命令檔中兩個或更多個稀疏維度的元組。這項計算只限 Smart View 方格中的元組維度成員。
- 選取相關資訊環境稀疏維度 - 從程式實際執行時選取的稀疏維度計算元組。這項計算只限 Smart View 方格中的元組維度成員。
若要嘗試範例,請從 Essbase Web 介面的檔案區域中,藝廊資料夾的 Technical > Calc 區段下載 CalcTuple_Tuple.xlsx 工作簿範本。請參考工作簿中的 README 工作表,以取得相關指示。
未選擇任何元組
示範未選取元組情況下會發生的預設 Essbase 區塊儲存計算行為,下列計算命令檔會計算 Smart View 方格中 Product 和 Market 維度成員的完整交叉乘積。
藉由使用 SET RUNTIMESUBVARS 區塊定義的兩個程式實際執行替代變數 (RTSV),計算限制為從 Smart View 執行計算時方格中存在的 Product 和 Market 檢視點。
SET RUNTIMESUBVARS
{
ProductGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Product's members on the grid</description>
<type>member</type>
<dimension>Product</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
MarketGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Market's members on the grid</description>
<type>member</type> <dimension>Market</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
};
FIX (
&ProductGridMembers, &MarketGridMembers
)
Marketing(
Marketing = Marketing +1;
);
ENDFIX
選擇具名稀疏維度
使用 @GRIDTUPLES 函數選取 Product 和 Market 維度的元組時,此 Essbase 區塊儲存計算命令檔只會計算這兩個維度的元組,將其範圍限制於從 Smart View 執行計算時存在於 Smart View 方格中的成員。
FIX (
{@GRIDTUPLES(Product, Market)}
)
Marketing(
Marketing = Marketing + 1;
);
ENDFIX
透過 FIX 方式僅限定元組中具名的稀疏維度,此計算包含的區塊數目遠少於預設計算所含的區塊數目。不過,FIX 中未提及的所有維度成員 (Year, Scenario) 都由此計算命令檔計算。
選擇相關資訊環境稀疏維度
使用 @GRIDTUPLES 函數和程式實際執行替代變數時,此 Essbase 區塊儲存計算命令檔會根據 RTSV 提示中的稀疏維度選擇項目,只計算從方格中選取的元組。
在 SET RUNTIMESUBVARS 區塊中定義的程式實際執行替代變數 &DimSelections,會將計算範圍限制為只限立方結構的稀疏維度 (不包括「案例」)。FIX 敘述句中使用的 @GRIDTUPLES 函數會呼叫此變數,限制所計算的交集數目。
SET RUNTIMESUBVARS
{
DimSelections = "Version", "Site", "Entity", "Product", "Market"
<RTSV_HINT><svLaunch>
<description>List two or more sparse dimensions used for forming calculation tuples:</description>
<type>string</type>
</svLaunch></RTSV_HINT>;
};
FIX (
{@GRIDTUPLES(&DimSelections)}
)
Marketing(
Marketing = Marketing + 1;
);
ENDFIX
此計算包含的區塊數目比前一個範例少,這是因為在此案例中,元組定義擴及的稀疏維度數目超過 Product->Market。
若要嘗試範例,請從 Essbase Web 介面的檔案區域中,藝廊資料夾的「技術」>「計算」區段下載 CalcTuple_Tuple.xlsx 工作簿範本。請參考工作簿中的 README 工作表,以取得相關指示。