共用方式為


匯總和匯總設計

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

AggregationDesign 物件定義一組匯總定義,可跨多個分割區共用。

Aggregation 物件代表維度特定數據粒度的量值群組數據的摘要。

簡單的 Aggregation 物件是由:基本資訊和維度所組成。 基本資訊包括匯總的名稱、標識碼、批注和描述。 維度是 AggregationDimension 物件的集合,其中包含維度的數據粒度屬性清單。

匯總是從分葉數據格預先計算的數據摘要。 匯總會先準備解答,再詢問問題,以改善查詢回應時間。 例如,當數據倉儲事實數據表包含數十萬個數據列時,要求特定產品線每周銷售總計的查詢可能需要很長的時間才能回答,如果事實數據表中的所有數據列都必須在查詢時掃描和加總,才能計算答案。 不過,如果已預先計算要回應此查詢的摘要數據,則響應幾乎可以立即回應。 此摘要數據的預先計算會在處理期間發生,是 OLAP 技術的快速回應時間的基礎。

Cube 是 OLAP 技術將摘要數據組織成多維度結構的方式。 維度及其屬性階層會反映可要求 Cube 的查詢。 匯總會儲存在維度所指定座標之數據格的多維度結構中。 例如,「1998 年西北地區產品 X 的銷售量為何?」的問題涉及三個維度(Product、Time 和 Geography)和一個量值(Sales)。 立方體中位於指定座標的儲存格值(product X, 1998, Northwest) 是單一數值的答案。

其他問題可能會傳回多個值。 例如,「1998 年依區域按季銷售硬體產品多少?這類查詢會從符合指定條件的座標傳回一組單元格。 查詢所傳回的單元格數目取決於 Product 維度的硬體層級、1998 年的四季項目數目,以及 Geography 維度中的區域數目。 如果所有摘要數據都預先計算成匯總,查詢的響應時間將只取決於擷取指定單元格所需的時間。 不需要從事實數據表計算或讀取數據。

雖然在 Cube 中預先計算所有可能匯總可能會為所有查詢提供最快的回應時間,但 SQL Server Analysis Services 可以輕鬆地從其他預先計算的匯總匯總中計算一些匯總值。 此外,計算所有可能的匯總都需要大量的處理時間和記憶體。 因此,記憶體需求與預先計算的可能匯總百分比之間會有取捨。 如果沒有預先計算匯總(0%),Cube 所需的處理時間和儲存空間量會最小化,但查詢回應時間可能會變慢,因為必須從分葉數據格擷取每個查詢所需的數據,然後在查詢時間匯總以回應每個查詢。 例如,傳回回答稍早提問的單一數位(「西北地區 1998 年產品 X 的銷售額為何」,可能需要讀取數千個數據列,擷取用來從每個數據列提供 Sales 量值的數據行值,然後計算總和。 此外,擷取該資料所需的時間長度將非常取決於為 data-MOLAP、HOLAP 或 ROLAP 選擇的儲存模式。

設計匯總

Microsoft SQL Server SQL Server Analysis Services 會納入複雜的演算法,以選取要預先計算的匯總,以便從預先計算的值快速計算其他匯總。 例如,如果匯總是預先計算時間階層的 Month 層級,則四分之一層級的計算只需要三個數位的摘要,即可依需求快速計算。 這項技術可節省處理時間並減少記憶體需求,對查詢回應時間的影響最小。

[匯總設計精靈] 提供選項,讓您指定演算法的記憶體和百分比條件約束,以達到查詢響應時間和記憶體需求之間的令人滿意取捨。 不過,匯總設計精靈的演算法會假設所有可能的查詢都同樣可能。 Usage-Based 優化精靈可讓您藉由分析用戶端應用程式提交的查詢,來調整量值群組的匯總設計。 藉由使用精靈來微調 Cube 的匯總,您可以增加對頻繁查詢的回應性,並減少對不常查詢的回應性,而不會影響 Cube 所需的記憶體。

匯總是使用精靈所設計,但在設計匯總的分割區經過處理之前,不會實際計算。 建立匯總之後,如果 Cube 的結構曾經變更,或數據加入或變更在 Cube 的源數據表中,通常需要檢閱 Cube 的匯總,並再次處理 Cube。

另請參閱

數據分割儲存模式和處理