匯總設計與特定量值群組的數據分割相關聯,以確保數據分割在儲存匯總時使用相同的結構。 針對分割區使用相同的儲存結構,可讓您輕鬆地定義稍後可以使用 MergePartitions 命令合併的分割區。 如需匯總設計的詳細資訊,請參閱 匯總和匯總設計。
若要定義匯總設計的匯總,您可以使用 XML for Analysis (XMLA) 中的 DesignAggregations 命令。 命令 DesignAggregations 具有屬性,可識別要作為參考使用的匯總設計,以及如何根據該參考控制設計程式。
DesignAggregations使用 命令及其屬性,您可以反覆或批次設計匯總,然後檢視產生的設計統計數據來評估設計程式。
指定匯總設計
命令的 DesignAggregationsObject 屬性必須包含現有匯總設計的對象參考。 對象參考包含資料庫標識碼、Cube標識元、量值群組標識碼和匯總設計標識碼。 如果匯總設計尚未存在,就會發生錯誤。
控制設計程式
您可以使用 命令的 DesignAggregations 下列屬性來控制用來定義匯總設計的演演算法:
Steps 屬性會決定命令在將控制權傳回給用戶端應用程式之前,應該採取的反覆
DesignAggregations項目數目。Time 屬性會決定命令在將控制權傳回給用戶端應用程式之前,應該要花多少毫秒
DesignAggregations。Optimization 屬性會決定命令應嘗試達到的效能改進
DesignAggregations估計百分比。 如果您要反覆設計匯總,您只需要在第一個命令上傳送這個屬性。Storage 屬性會決定命令所使用的
DesignAggregations估計磁碟記憶體數量,以位元組為單位。 如果您要反覆設計匯總,您只需要在第一個命令上傳送這個屬性。Materialize 屬性會決定命令是否
DesignAggregations應該在設計過程中建立定義的匯總。 如果您要反覆設計匯總,則此屬性應該設定為 false,直到您準備好儲存設計匯總為止。 當設定為 true 時,目前的設計程式會結束,且已定義的匯總會新增至指定的匯總設計。
指定查詢
DesignAggregations 命令支援使用方式型優化命令,方法是在 Queries 屬性中包含一或多個Query元素。 屬性 Queries 可以包含一或多個 Query 元素。
Queries如果 屬性不包含任何Query專案,元素中指定的Object匯總設計會使用包含一組一般匯總的默認結構。 這個一般彙總集的設計目的是要符合 命令 的 Optimization 和 Storage 屬性 DesignAggregations 中指定的準則。
每個 Query 元素都代表設計程式用來定義以最常使用查詢為目標的匯總的目標查詢。 您可以指定自己的目標查詢,或使用查詢記錄檔中 Microsoft sql Server Analysis Services 實例所儲存的資訊來擷取最常使用之查詢的相關信息。 Usage-Based 優化精靈會使用查詢記錄檔,根據時間、使用量或指定的使用者,在傳送 DesignAggregations 命令時擷取目標查詢。 如需詳細資訊,請參閱 Usage-Based 優化精靈 F1 說明。
如果您要反覆設計匯總,您只需要在第一個 DesignAggregations 命令中傳遞目標查詢,因為 Analysis Services 實例會儲存這些目標查詢,並在後續 DesignAggregations 命令期間使用這些查詢。 在反覆程式的第一DesignAggregations個命令中傳遞目標查詢之後,任何在 屬性中包含Queries目標查詢的後續DesignAggregations命令都會產生錯誤。
元素 Query 包含逗號分隔值,其中包含下列自變數:
Frequency,Dataset[,Dataset...]
頻率
與先前執行查詢次數相對應的加權因數。
Query如果元素代表新的查詢,Frequency 值代表設計程式用來評估查詢的加權因數。 當頻率值變大時,設計程式期間查詢所放置的權數會增加。
資料集
數值字串,指定要包含在查詢中的維度屬性。 此字串的字元數目必須與維度中的屬性數目相同。 零 (0) 表示指定之序數位置中的屬性未包含在指定維度的查詢中,而一 (1) 表示指定之序數位置中的屬性會包含在指定維度的查詢中。
例如,字串 「011」 會參考包含三個屬性之維度的查詢,其中第二個和第三個屬性會包含在查詢中。
備註
某些屬性會排除在數據集中的考慮之外。 如需排除屬性的詳細資訊,請參閱 Query Element (XMLA) 。
包含匯總設計之量值群組中的每個維度都會以 元素中的Query數據集值表示。
數據集值的順序必須符合量值群組中包含的維度順序。
使用反覆式或批處理設計匯總
視設計程式所需的互動性而定,您可以使用 DesignAggregations 命令做為反覆程式或批處理的一部分。
使用反覆程式設計匯總
若要反覆設計匯總,您可以傳送多個 DesignAggregations 命令來提供設計程式的精細控制。 [匯總設計精靈] 會使用相同的方法來提供設計程序的精細控制。 如需詳細資訊,請參閱 匯總設計精靈 F1 說明。
備註
反覆設計匯總需要明確的會話。 如需明確會話的詳細資訊,請參閱管理連線和會話 (XMLA)。
若要啟動反覆程式,請先傳送 DesignAggregations 包含下列資訊的命令:
和
StorageOptimization屬性值,整個設計程序的目標。設計
Steps程式第一個步驟限制的 和Time屬性值。如果您想要以使用量為基礎的優化,
Queries則包含整個設計程式目標目標查詢的屬性。屬性
Materialize設定為 false。 將此屬性設定為 false 表示設計程式不會在命令完成時,將定義的匯總儲存至匯總設計。
當第一個 DesignAggregations 命令完成時,命令會傳回包含設計統計數據的數據列集。 您可以評估這些設計統計數據,以判斷設計程式是否應該繼續,還是設計程式是否已完成。 如果程式應該繼續,您接著會傳送另一個 DesignAggregations 命令,其中包含 Steps 設計程式此步驟所限制的 和 Time 值。 您評估產生的統計數據,然後判斷設計程式是否應該繼續。 傳送命令和評估結果的 DesignAggregations 反覆程式會繼續進行,直到您達成目標並定義一組適當的匯總為止。
到達您想要的彙總集之後,您會傳送最後 DesignAggregations 一個命令。 這個最後一 DesignAggregations 個命令的 屬性應該 Steps 設定為 1,而其 Materialize 屬性設定為 true。 透過使用這些設定,這個最終 DesignAggregations 命令會完成設計程式,並將定義的匯總儲存至匯總設計。
使用批處理設計匯總
您也可以傳送單DesignAggregations一命令,以在批處理中設計匯總,其中包含Steps整個設計程序的目標和限制的、 TimeStorage、 和 Optimization 屬性值。 如果您想要以使用量為基礎的優化,設計程式的目標查詢也應該包含在屬性中 Queries 。 也請確定 Materialize 屬性設定為 true,讓設計程式在命令完成時,將定義的匯總儲存至匯總設計。
您可以在隱含或明確會話中使用批處理來設計匯總。 如需隱含和明確工作階段的詳細資訊,請參閱 管理連線和工作階段 (XMLA) 。
傳回設計統計數據
DesignAggregations當命令將控件傳回用戶端應用程式時,命令會傳回數據列集,其中包含代表命令之設計統計數據的單一數據列。 數據列集包含下表所列的數據行。
| 資料行 | 數據類型 | 說明 |
|---|---|---|
| 步驟 | 整數 | 命令在將控制權傳回用戶端應用程式之前所採取的步驟數目。 |
| 時間 | 長整數 | 命令在將控制權傳回用戶端應用程式之前所花費的毫秒數。 |
| 優化 | 兩倍 | 命令在將控制權傳回給用戶端應用程式之前,所達成的效能改進估計百分比。 |
| 存儲 | 長整數 | 命令在將控制權傳回給用戶端應用程式之前,所擷取的估計位元組數目。 |
| 聚合 | 長整數 | 在將控制權傳回用戶端應用程式之前,命令所定義的匯總數目。 |
| LastStep | 布爾邏輯 | 指出數據列集中的數據是否代表設計程式中的最後一個步驟。
Materialize如果命令的 屬性設定為 true,這個數據行的值會設定為 true。 |
您可以使用在反覆式和批次設計中每個 DesignAggregations 命令之後傳回的數據列集中包含的設計統計數據。 在反覆設計中,您可以使用設計統計數據來判斷和顯示進度。 當您在批次中設計匯總時,可以使用設計統計數據來判斷命令所建立的匯總數目。