在 DirectQuery 模型中定義分割區
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
本文說明如何在 DirectQuery 模型中使用分割區。 如需表格式模型中資料分割的一般資訊,請參閱在表格式模型中 分割。
注意
雖然數據表可以有多個分割區,但在 DirectQuery 模式中,只能指定其中一個分割區用於查詢執行。 單一分割區需求適用於所有相容性層級的 DirectQuery 模型。
在 DirectQuery 模式中使用分割區
針對每個數據表,您必須指定要作為 DirectQuery 數據源的單一分割區。 如果有多個分割區,當您切換模型以啟用 DirectQuery 模式時,根據預設,數據表中建立的第一個分割區會標示為 DirectQuery 磁碟分區。 您稍後可以在 Visual Studio 中使用表格式模型設計工具中的數據分割管理員來變更此專案。
為什麼在 DirectQuery 模式中只允許單一分割區? 在表格式模型中(如 OLAP 模型中),數據表的數據分割是由 PowerQuery M 查詢或 SQL 查詢所定義。 建立數據分割定義的開發人員負責確保數據分割不會重疊。 Analysis Services 不會檢查記錄是否屬於一或多個分割區。
快取表格式模型中的數據分割的運作方式相同。 如果您使用記憶體內部模型,而正在存取快取時,系統會針對每個分割區評估 DAX 公式,並合併結果。 不過,當表格式模型使用 DirectQuery 模式時,就不可能評估多個分割區、合併結果,然後將結果轉換成 SQL 語句以傳送至關係型數據存放區。 這樣做可能會導致無法接受的效能遺失,以及匯總結果時的潛在不透明度。
因此,對於 DirectQuery 模式中回應的查詢,伺服器會使用已標示為 DirectQuery 存取主要分割區的單一分割區,稱為 DirectQuery 分割區。 此分割區定義中指定的 SQL 查詢會定義可用來在 DirectQuery 模式中回應查詢的完整數據集。
如果您未明確定義分割區,引擎只會向整個關係型數據源發出 SQL 查詢、執行 DAX 公式所指定的任何以集合為基礎的作業,並傳回查詢結果。
變更 DirectQuery 分割區
因為數據表中只有一個數據分割可以指定為 DirectQuery 數據分割,因此 Analysis Services 預設會使用數據表中建立的第一個數據分割。 在模型專案撰寫期間,您可以使用數據分割管理員來變更 DirectQuery 分割區。 針對已部署的模型,您可以使用 SQL Server Management Studio 來變更 DirectQuery 分割區。
變更表格式模型專案的 DirectQuery 分割區
在 Visual Studio 的模型設計工具中,按兩下包含資料分割資料表的數據表(索引標籤)。
點選單擊 [資料表
分割區 。延伸模組 在 數據分割管理員中,數據分割名稱上以前置詞 (DirectQuery) 表示的目前直接查詢分割區。
從 [分割] 列表中選取不同的分割區,然後按兩下 [[設定為 DirectQuery]。 選取目前的 DirectQuery 分割區時,不會啟用 [設定為 DirectQuery] 按鈕,如果模型尚未啟用 Direct Query 模式,則不會顯示。
變更已部署表格式模型的 DirectQuery 分割區
在 SQL Server Management Studio 中,在 [物件總管] 中開啟模型資料庫。
展開 [數據表] 節點,然後以滑鼠右鍵按鍵按鍵分割數據表,然後選取 [[分割區]。
指定用於 DirectQuery 模式的數據分割在分割區名稱上具有前置詞 (DirectQuery)。
若要變更為不同的分割區,請按兩下
Direct Query 工具列圖示,開啟 [設定 DirectQuery 分割區] 對話框。 DirectQuery 工具列圖示不適用於尚未針對直接查詢啟用的模型。 從 資料分割名稱 下拉式清單選擇不同的分割區,然後視需要變更分割區上的處理選項。