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