共用方式為


資料分割和 DirectQuery 模式 (SSAS 表格式)

本節說明如何在 DirectQuery 模型中使用分割區。 如需表格式模型中數據分割的詳細資訊,請參閱數據分割(SSAS 表格式)。

如需如何變更使用的數據分割或檢視數據分割相關信息的指示,請參閱變更 DirectQuery 分割區 (SSAS 表格式)。

在 DirectQuery 模式中使用分割區

針對每個數據表,您必須指定要作為 DirectQuery 數據源的單一分割區。 如果有多個分割區,當您切換模型以啟用 DirectQuery 模式時,根據預設,數據表中建立的第一個分割區會標示為 DirectQuery 磁碟分區。 您稍後可以使用 SQL Server Data Tools 中的數據分割管理員 (SSDT) 來變更此專案。

為什麼在 DirectQuery 模式中只允許單一分割區?

在表格式模型中(如同 OLAP 模型),數據表的數據分割是由 SQL 查詢所定義。 建立數據分割定義的開發人員負責確保數據分割不會重疊。 Analysis Services 不會檢查記錄是否屬於一或多個分割區。

在快取的表格式模型中,分區的運作方式相同。 如果您使用記憶體內部模型,在存取快取的同時,系統會對每個分割區評估 DAX 公式,然後合併結果。 不過,當表格式模型使用 DirectQuery 模式時,就不可能評估多個分割區、合併結果,然後將結果轉換成 SQL 語句以傳送至關係型數據存放區。 這樣做可能會導致無法接受的效能遺失,以及匯總結果時的潛在不透明度。

因此,對於在 DirectQuery 模式中回答的查詢,伺服器會使用已標示為 DirectQuery 存取主要分割區的單一分割區,稱為 DirectQuery 磁碟分區。 此分割區定義中指定的 SQL 查詢會定義可用來在 DirectQuery 模式中回應查詢的完整數據集。

如果您未明確定義分割區,引擎只會向整個關係型數據源發出 SQL 查詢、執行 DAX 公式所指定的任何以集合為基礎的作業,並傳回查詢結果。

如果您在數據表中有多個分割區,並選取一個分割區作為 DirectQuery 數據分割,則所有其他分割區預設都會標示為僅供記憶體內部使用。

快取模型和 DirectQuery 模型中的分割區塊

當您設定 DirectQuery 資料分割時,您必須指定資料分割的處理選項。

DirectQuery 分割區有兩個處理選項。 若要設定此屬性,請使用 SQL Server Data Tools (SSDT) 或 SQL Server Management Studio 中的數據 分割管理員 ,然後選取 [處理選項 ] 屬性。 下表列出這個屬性的值,並描述當與連接字串上的 DirectQueryUsage 屬性結合時,每個值的效果:

DirectQueryUsage 屬性 處理選項 屬性 註釋
直接查詢 永不處理此分割區 當模型只使用 DirectQuery 時,絕對不需要處理。

在混合式模型中,您可以將 DirectQuery 分割區設定為永遠不會處理。 例如,如果您處理非常大的數據集且不希望將完整結果新增至快取中,您可以指定 DirectQuery 分區包含該數據表中所有其他分區結果的聯集,並且不去處理這個聯集。 查詢進入關係型來源時不會受到影響,而查詢快取數據時將會整合來自其他分割區的數據。
InMemory With DirectQuery 請允許處理分割區 如果模型使用混合模式,您應該對記憶體內部查詢和對 DirectQuery 資料來源的查詢使用相同的分割區。

另請參閱

分區(SSAS 表格模型)