Share via


在 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 資料分割

  1. 在 Visual Studio 的模型設計工具中,按一下包含分割資料表的資料表 (索引標籤) 。

  2. 按一下 [擴充功能>資料表>資料分割]。

  3. 在 [資料分割管理員] 中,作為目前直接查詢資料分割的資料分割是由資料分割名稱上的前置詞 (DirectQuery) 所表示。

    從 [資料分割] 清單中選取其他資料分割,然後按一下 [設為 DirectQuery]。 選取目前的 DirectQuery 資料分割時,[設為 DirectQuery] 按鈕不會啟用,而且在模型尚未啟用直接查詢模式時,看不到此按鈕。

變更已部署的表格式模型的 DirectQuery 資料分割

  1. 在 SQL Server Management Studio 中,在 物件總管 中開啟模型資料庫。

  2. 展開 [資料表] 節點,然後以滑鼠右鍵按一下資料分割資料表,再選取 [資料分割]

    指定用於 DirectQuery 模式的資料分割在資料分割名稱上具有前置詞 (DirectQuery)。

  3. 若要變更為其他資料分割,請按一下 [直接查詢] 工具列圖示以開啟 [設定 DirectQuery 資料分割] 對話方塊。 在尚未啟用直接查詢的模型上,無法使用 DirectQuery 工具列圖示。

  4. 從 [資料分割名稱] 下拉式清單中選擇其他資料分割,然後視需要變更該資料分割的處理選項。

另請參閱

資料分割