SQL Server Analysis Services 的新功能

適用于:SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

本文摘要說明最新版 SSAS SQL Server Analysis Services () 中的新功能、改善、已淘汰和已停止的功能,以及行為和中斷性變更。

SQL Server 2022 Analysis Services

累積更新 1 (CU1)

加密升級

此更新包含架構寫入作業加密演算法的增強功能。 這項增強功能可能需要您升級表格式和多維度模型資料庫,以確保加密正確。 若要深入瞭解,請參閱 升級加密

正式上市 (GA)

水準融合

此版本引進 Horizontal Fusion,這是一項查詢執行計畫優化,旨在減少產生和傳回結果所需的資料來源查詢數目。 多個較小的資料來源查詢會結合成較大的資料來源查詢。 較少的資料來源查詢表示對大型資料來源的來回行程和成本較低的掃描,這會導致資料來源的可調整 DAX 效能提升,並減少處理需求。 DAX 查詢使用水準融合更快執行,特別是在 DirectQuery 模式中。 此外,延展性也會增加。

DirectQuery 的平行執行計畫

這項改進可讓 Analysis Services 引擎針對 DirectQuery 資料來源分析 DAX 查詢,並識別獨立的儲存體引擎作業。 然後,引擎就可以平行對資料來源執行這些作業。 藉由平行執行作業,Analysis Services 引擎可以利用延展性大型資料來源可以提供來改善查詢效能。 若要確保查詢處理不會過度負擔您的資料來源,請使用 MaxParallelism 屬性設定來指定可用於平行作業的固定執行緒數目。

支援 Power BI DirectQuery 語意模型

此版本引進了 Power BI 模型支援與 SQL Server 2022 Analysis Services 模型的 DirectQuery 連線。 使用 2022 年 5 月和更新版本的 Power BI Desktop資料模型器和報表作者,現在可以使用 Power BI 模型、Azure Analysis Services和 SSAS 2022 合併其他匯入和 DirectQuery 資料。

若要深入瞭解,請參閱 使用 DirectQuery 進行語意模型和 Analysis Services |Power BI 檔

MDX 查詢效能

第一次在 Power BI 中引進,現在在 SSAS 2022 中, MDX Fusion 包含公式引擎 (FE) 優化,可減少每個 MDX 查詢的儲存體引擎 (SE) 查詢數目。 使用多維度運算式的用戶端應用程式 (MDX) 來查詢模型/資料集資料,例如 Microsoft Excel 將會看到改善的查詢效能。 常見的 MDX 查詢模式現在需要較少的 SE 查詢,因為先前需要許多 SE 查詢來支援不同的資料細微性。 較少的 SE 查詢表示大型模型的掃描成本較少,這會導致大幅提升效能,特別是在直接查詢模式中連接到表格式模型時。

若要深入瞭解,請參閱 在 Power BI 中宣佈改善的 MDX 查詢效能 |Microsoft Power BI 部落格

資源管理

此版本包含 QueryMemoryLimit 伺服器記憶體屬性和 DbpropMsmdRequestMemoryLimit 連接字串 屬性的改善精確度。

第一次在 SSAS 2019 中引進, QueryMemoryLimit 伺服器記憶體屬性只會套用至查詢處理期間建立中繼 DAX 查詢結果的記憶體多工緩衝處理。 現在在 SSAS 2022 中,它也適用于 MDX 查詢,有效地涵蓋所有查詢。 您可以更妥善地控制產生重大具體化的昂貴查詢程式。 如果查詢達到指定的限制,引擎會取消查詢,並將錯誤傳回給呼叫端,以減少對其他並行使用者的影響。

用戶端應用程式可以藉由指定DbpropMsmdRequestMemoryLimit連接字串 屬性,進一步減少每個查詢允許的記憶體。 在 KB 中指定,這個屬性會覆寫連線的 QueryMemoryLimit 伺服器記憶體屬性值。

查詢交錯 - 快速取消的簡短查詢偏差

此版本引進了新的值,指定 Threadpool\SchedulingBehavior 屬性設定的 快速取消簡短查詢偏差 。 此屬性設定可改善高並行案例中的使用者查詢回應時間。 若要深入瞭解,請參閱 查詢交錯 - 設定

表格式模型 1600 相容性層級

此版本引進表格式模型的 1600 相容性層級 。 1600 相容性層級與 Power BI 和Azure Analysis Services的最新功能一致。

SSAS 2022 中已被取代的功能

此版本未宣佈已 淘汰 的功能。

SSAS 2022 中已停止的功能

此版本 已停止 下列功能:

模式/類別 功能
表格式 1100 和 1103 相容性層級
多維度 資料採礦
Power Pivot 模式 PowerPivot for SharePoint

SSAS 2022 的重大變更

表格式模型 1100 和 1103 相容性層級在此版本中已停止。 若要避免 重大變更,請先將模型升級至 1200 相容性層級,再將舊版 SSAS 升級至 SSAS 2022。

SSAS 2022 的行為變更

此版本沒有任何 行為變更

SQL Server 2019 Analysis Services

SQL Server 2019 Analysis Services CU 5

SQL Server Analysis Services累積更新隨附于SQL Server累積更新。 若要深入瞭解並下載最新的累積更新,請參閱SQL Server 2019 最新累積更新。 累積更新 KB 頁面摘要說明所有SQL Server功能的已知問題、改善和修正,包括 SSAS。 以下是 SSAS 主要功能更新的其他詳細資料。

多維度模型的 SuperDAX (SuperDAXMD)

透過 CU5,DAX 型用戶端現在可以針對多維度模型使用 SuperDAX 函式和查詢模式,在查詢模型資料時提供改善的效能。 SuperDAX 首先引進了 Power BI 和 SQL Server Analysis Services 2016 表格式模型的 DAX 查詢優化。 SuperDAXMD 現在會將這些改善帶入多維度模型。

Power BI 部落格上的個別公告會強調 Power BI 使用者如何藉由下載最新版本的 Power BI Desktop,從這個多維度模型效能改善獲益。 Power BI 服務中現有的互動式報表可以享有權益,而不需要任何其他步驟,因為 Power BI 會自動產生優化的 SuperDAX 查詢。 Power BI 會自動偵測具有 SuperDAX 支援的多維度模型連線,並使用它已針對表格式模型使用的相同優化 DAX 函式和查詢模式。 雖然 Power BI 可以自動切換至 SuperDAXMD,但在您的商業智慧解決方案中,您可能必須手動優化 DAX 查詢模式。

優化查詢模式應該使用 SUMMARIZECOLUMNS 函式來取代效率較低的標準 SUMMARIZE 函式。 使用 DAX 變數 VAR,只在定義位置計算運算式一次,然後在任何其他 DAX 運算式中重複使用結果,而不需要再次執行計算。 其他和較不常見的 SuperDAX 函式可能是 SUBSTITUTEWITHINDEXADDMISSINGITEMS,以及 NATURALLEFTOUTERJOINNATURALINNERJOINISONORAFTERGROUPBYSELECTCOLUMNSUNION 也是 SuperDAX 函式。

若要深入瞭解 DAX 如何搭配多維度模型運作,以及要注意的重要模式和條件約束,請務必查看 多維度模型的 DAX

SQL Server 2019 Analysis Services GA (正式推出)

表格式模型相容性層級

此版本引進表格式模型的 1500 相容性層級

查詢交錯

查詢交錯是表格式模式的系統設定,可改善高並行處理案例中的使用者查詢回應時間。 具有 簡短查詢偏差的查詢 交錯可讓並行查詢共用 CPU 資源。 若要深入了解,請參閱查詢交錯

表格式模型中的計算群組

計算群組可藉由將常見量值運算式分組為「計算項目」 來大幅減少多餘量值的數目。 計算群組會作為具有單一資料行的資料表,顯示在報告用戶端中。 資料行中每個值都代表可重複使用的計算或計算項目,且可以套用到任何量值。 計算群組可擁有任意數量的計算項目。 每個計算項目都由一個 DAX 運算式定義。 若要深入瞭解,請參閱 計算群組

Power BI 快取重新整理的治理設定

SSAS 2019 和更新版本現在支援 ClientCacheRefreshPolicy 屬性設定。 此屬性設定已可供Azure Analysis Services使用。 Power BI 服務快取儀表板磚資料和報表資料,以便初始載入Live Connect報表,導致提交至引擎的快取查詢過多,而且在極端的情況下,伺服器會多載。 ClientCacheRefreshPolicy屬性可讓您在伺服器層級覆寫此行為。 若要深入了解,請參閱一般屬性

線上附加

此功能可讓您將表格式模型附加為線上作業。 線上附加可用於同步處理內部部署查詢擴充環境中的唯讀複本。 若要執行線上附加作業,請使用附加 XMLA 命令的 AllowOverwrite 選項。

AllowOverwrite

此作業可能需要「兩倍的模型記憶體」,才能在載入新版本時讓舊版本保持上線。

一般的使用模式可能如下所示:

  1. DB1 (第 1 版) 已附加在唯讀伺服器 B 上。

  2. DB1 (第 2 版) 會在寫入伺服器 A 上處理。

  3. DB1 (第 2 版) 已卸離並放在伺服器 B 可存取的位置 (透過共用位置,或使用 Robocopy 等)。

  4. <具有 AllowOverwrite=True 的 Attach > 命令會在具有 DB1 (第 2 版新位置的伺服器 B 上執行) 。

若沒有這項功能,系統管理員必須先卸離資料庫,然後附加新版本的資料庫。 這會導致使用者無法使用資料庫的停機時間,且對其進行的查詢將會失敗。

當指定這個新旗標時,就會在相同交易內自動刪除第 1 版的資料庫,而不會有停機時間。 不過,其代價是將兩個資料庫同時載入記憶體中。

表格式模型中的多對多關聯性

這項改進允許資料表之間的多對多關聯性,其中兩個數據行都是非唯一的。 關聯性可定義於維度與事實資料表之間,且其細微性可高於維度的索引鍵資料行。 如此即無須將維度資料表正規化,並且可以改善使用者體驗,因為產生的模型會有較少的資料表,且具有以邏輯方式分組的資料行。

多對多關聯性需要模型位於 1500 和更高的相容性層級。 您可以使用 Visual Studio 2019 搭配 Analysis Services 專案 VSIX 更新 2.9.2 和更新版本、表格式物件模型 (TOM) API、表格式模型指令碼語言 (TMSL) ,以及開放原始碼表格式編輯器工具,來建立多對多關聯性。

資源控管的記憶體設定

下列屬性設定提供改良的資源控管:

  • Memory\QueryMemoryLimit - 這個記憶體屬性可用來限制提交至模型的 DAX 查詢所建置的記憶體多工緩衝處理。
  • DbpropMsmdRequestMemoryLimit - 此 XMLA 屬性可用來覆寫連線的 Memory\QueryMemoryLimit 伺服器屬性值。
  • OLAP\Query\RowsetSerializationLimit - 此伺服器屬性可限制資料列集中傳回的資料列數目,以防止伺服器資源用於大量的資料匯出。 此屬性對 DAX 和 MDX 查詢均適用。

這些屬性可使用最新版的 SQL Server Management Studio (SSMS) 來設定。 這些設定已可供Azure Analysis Services使用。

SSAS 2019 中已被取代的功能

此版本未宣佈已 淘汰 的功能。

SSAS 2019 中已停止的功能

此版本未宣佈 已停止 的功能。

SSAS 2019 的重大變更

此版本中沒有 重大變更

SSAS 2019 的行為變更

此版本中沒有任何 行為變更

SQL Server 2017 Analysis Services

SQL Server 2017 Analysis Services 會在 SQL Server 2012 之後看到一些最重要的增強功能。 根據表格式模式的成功, (第一次在 SQL Server 2012 Analysis Services) 中引進,此版本讓表格式模型比以往更強大。

多維度模式和 Power Pivot for SharePoint 模式是許多 Analysis Services 部署的釘選。 在 Analysis Services 產品生命週期中,這些模式已成熟。 此版本中其中一種模式沒有任何新功能。 不過,包含 Bug 修正和效能改善。

這裡所述的功能包含在 SQL Server 2017 Analysis Services 中。 但若要利用它們,您也必須使用最新版的 Visual Studio 搭配 Analysis Services 專案,以及SQL Server Management Studio (SSMS) 。 Analysis Services 專案和 SSMS 會每月更新,其中包含通常與 SQL Server 新功能一致的新功能。

雖然請務必瞭解所有新功能,但也必須瞭解此版本和未來版本中即將淘汰和停止的內容。 若要深入瞭解,請參閱 SSAS 2017 中已被取代的功能

讓我們看看此版本中的一些重要新功能。

表格式模型的 1400 相容性層級

若要利用這裡所述的許多新功能和功能,必須將新的或現有的表格式模型設定或升級為 1400 相容性層級。 使用 1400 相容性層級的模型無法部署到 SQL Server 2016 SP1 或更早版本,或降級為較低的相容性層級。 若要深入了解,請參閱 Analysis Services 表格式模型的相容性層級

在 Visual Studio 中,您可以在建立新的表格式模型專案時選取新的 1400 相容性層級。

AS_NewTabular1400Project

若要升級 Visual Studio 中現有的表格式模型,請在 方案總管 中,以滑鼠右鍵按一下Model.bim,然後在[屬性] 中,將[相容性層級] 屬性設定為SQL Server 2017 (1400)

AS_Model_Properties

請務必記住,一旦您將現有的模型升級至 1400,就無法降級。 請務必保留 1200 模型資料庫的備份。

新式取得資料經驗

從資料來源將資料匯入表格式模型時,SSDT 會在 1400 相容性層級引進模型的新式 Get Data 體驗。 這項新功能是以 Power BI Desktop 和 Microsoft Excel 2016 中類似的功能為基礎。 新式 Get Data 體驗會使用 Get Data 查詢產生器和 M 運算式,提供大量的資料轉換和資料混搭功能。

新式取得資料體驗提供各種資料來源的支援。 未來,更新將包含更多支援。

AS_Get_Data_in_SSDT

功能強大的直覺式使用者介面,可讓選取您的資料和資料轉換/混搭功能比以往更容易。

進階混搭

新式 Get Data 體驗和 M 混搭功能不適用於從 1200 相容性層級升級至 1400 的現有表格式模型。 新的體驗僅適用于在 1400 相容性層級建立的新模型。

編碼提示

此版本引進編碼提示,這是用來優化處理 (資料重新整理) 大型記憶體內表格式模型的進階功能。 若要進一步瞭解編碼方式,請參閱SQL Server 2012 Analysis Services 白皮書中的表格式模型的效能微調,以進一步瞭解編碼方式。

  • 值編碼可為通常僅用於匯總的資料行提供更佳的查詢效能。

  • 雜湊編碼是依資料行 (通常是維度資料表值) 和外鍵的慣用。 字串資料行一律會雜湊編碼。

數值資料行可以使用下列任一編碼方法。 當 Analysis Services 開始處理資料表時,如果資料表是空的 () 或執行完整資料表處理作業,則會針對每個數值資料行取得樣本值,以判斷是否要套用值或雜湊編碼。 根據預設,當資料行中相異值的樣本夠大時,會選擇值編碼,否則雜湊編碼通常可提供更好的壓縮。 Analysis Services 可以在資料行部分處理之後,根據資料散發的詳細資訊變更編碼方法,然後重新開機編碼程式;不過,這會增加處理時間,而且效率不佳。 效能微調白皮書會更詳細地討論重新編碼,並說明如何使用SQL Server Profiler來偵測它。

編碼提示可讓模型工具指定在資料分析和/或回應重新編碼追蹤事件之前知識的編碼方法喜好設定。 由於雜湊編碼資料行的匯總速度比值編碼資料行慢,因此值編碼可能會指定為這類資料行的提示。 不保證已套用喜好設定。 這是與設定相反的提示。 若要指定編碼提示,請在資料行上設定 EncodingHint 屬性。 可能的值為 「Default」、「Value」 和 「Hash」。 Model.bim 檔案中以 JSON 為基礎的中繼資料程式碼片段會指定 Sales Amount 資料行的值編碼。

{
    "name": "Sales Amount",
    "dataType": "decimal",
    "sourceColumn": "SalesAmount",
    "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00",
    "sourceProviderType": "Currency",
    "encodingHint": "Value"
}

不完全階層

在表格式模型中,您可以建立父子式階層的模型。 有多種不同層級的階層通常稱為「不完全階層」。 依預設,不完全階層會在最低的子系下顯示空白層級。 組織圖中的不完全階層範例如下︰

AS_Ragged_Hierarchy

此版本推出 隱藏成員 屬性。 您可以將階層的 隱藏成員 屬性設定為[Hide blank members (隱藏空白成員)]

AS_Hide_Blank_Members

注意

模型中的空白成員以 DAX 空白值表示,不是空的字串。

設為 Hide blank members(隱藏空白成員) 並部署了模型後,較方便讀取的階層版本會顯示在報表用戶端,例如 Excel。

AS_Non_Ragged_Hierarchy

詳細資料列

您現在可以定義參與量值的自訂資料列集。 詳細資料列類似多維度模型中的預設鑽研動作。 這可讓使用者檢視比彙總層級更詳細的資訊。

下列的樞紐分析表會依年份顯示 Adventure Works 範例表格式模型的 Internet Total Sales (網際網路總銷售額)。 您可以滑鼠右鍵按一下量值中有彙總值的儲存格,然後按一下 [顯示詳細資料] 檢視詳細資料列。

AS_Show_Details

預設會顯示 Internet Sales 資料表中的相關聯資料。 對使用者而言,此限制的行為通常沒有意義,因為資料表可能沒有能顯示有用資訊的必要資料行,例如客戶名稱和訂單資訊。 您可以使用 [詳細資料列] 指定量值的 Detail Rows Expression (詳細資料列運算式) 屬性。

量值的 Detail Rows Expression (詳細資料列運算式) 屬性

量值的 Detail Rows Expression (詳細資料列運算式)屬性可讓模型作者自訂傳回給使用者的資料行和資料列。

AS_Detail_Rows_Expression_Property

SELECTCOLUMNS DAX 函式通常用於詳細資料列運算式中。 下例會定義範例 Adventure Works 表格式模型的 Internet Sales 資料表中,資料列要傳回的資料行︰

SELECTCOLUMNS(
    'Internet Sales',
    "Customer First Name", RELATED( Customer[Last Name]),
    "Customer Last Name", RELATED( Customer[First Name]),
    "Order Date", 'Internet Sales'[Order Date],
    "Internet Total Sales", [Internet Total Sales]
)

定義屬性及部署模型之後,當使用者選取 [顯示詳細資料] 時,就會傳回自訂的資料列集。 它會自動接受所選儲存格的篩選器內容優先權。 本例中只會顯示 2010 年的值資料列︰

AS_Detail_Rows

資料表的預設 Detail Rows Expression (詳細資料列運算式) 屬性

除量值之外,資料表也有定義詳細資料列運算式的屬性。 Default Detail Rows Expression (預設詳細資料列運算式) 屬性的作用如同資料表中所有量值的預設值。 未定義自有運算式的量值會繼承資料表中的運算式,並顯示為數據表定義的資料列集。 這允許重複使用運算式,而稍後新增至資料表的新量值會自動繼承運算式。

AS_Default_Detail_Rows_Expression

DETAILROWS DAX 函數

本版中附有新的 DETAILROWS DAX 函數,會傳回詳細資料列運算式所定義的資料列集。 其運作方式類似 MDX 的 DRILLTHROUGH 陳述式,與表格式模型中所定義的詳細資料列運算式也相容。

下列 DAX 查詢會傳回量值或其資料表的詳細資料列運算式所定義的資料列集。 如未定義任何運算式,則會傳回 Internet Sales 資料表的資料,因為它是包含量值的資料表。

EVALUATE DETAILROWS([Internet Total Sales])

物件層級安全性

此版本引進資料表和資料行 的物件層級安全性 。 除了限制資料表和資料行資料的存取之外,機密資料表和資料行名稱還可以受到保護。 這有助於防止惡意使用者探查是否有這類資料表。

必須使用 JSON 型中繼資料、表格式模型指令碼語言 (TMSL) 或表格式物件模型 (TOM) 來設定物件層級安全性。

例如,下列程式碼將 TablePermission 類別的 MetadataPermission 屬性設為 [無] ,協助保護範例 Adventure Works 表格式模型中的 Product 資料表。

//Find the Users role in Adventure Works and secure the Product table
ModelRole role = db.Model.Roles.Find("Users");
Table productTable = db.Model.Tables.Find("Product");
if (role != null && productTable != null)
{
    TablePermission tablePermission;
    if (role.TablePermissions.Contains(productTable.Name))
    {
        tablePermission = role.TablePermissions[productTable.Name];
    }
    else
    {
        tablePermission = new TablePermission();
        role.TablePermissions.Add(tablePermission);
        tablePermission.Table = productTable;
    }
    tablePermission.MetadataPermission = MetadataPermission.None;
}
db.Update(UpdateOptions.ExpandFull);

動態管理檢視 (DMV)

DMV是SQL Server Profiler中傳回本機伺服器作業和伺服器健康情況相關資訊的查詢。 此版本包含 1200 和 1400 相容性層級表格式模型的 動態管理檢視 (DMV) 的改善。

DISCOVER_CALC_DEPENDENCY現在適用于表格式 1200 和更新版本的模型。 表格式 1400 和更高的模型會顯示 M 分割區、M 運算式和結構化資料來源之間的相依性。 若要深入瞭解,請參閱 Analysis Services 部落格

此 DMV 包含MDSCHEMA_MEASUREGROUP_DIMENSIONS改進功能,由各種用戶端工具用來顯示量值維度。 例如,Excel 樞紐分析表中的 [探索] 功能可讓使用者交叉鑽研與所選量值相關的維度。 此版本會更正先前顯示不正確值的基數資料行。

DAX 增強功能

新 DAX 功能最重要的一部分是 DAX 運算式的新 IN 運算子/CONTAINSROW 函數 。 這類似於 TSQL IN 子句中常用來指定多個值的 WHERE 運算子。

過去通常使用邏輯 OR 運算子指定多重值的篩選條件,如下列量值運算式中所示︰

Filtered Sales:=CALCULATE (
        [Internet Total Sales],
                 'Product'[Color] = "Red"
            || 'Product'[Color] = "Blue"
            || 'Product'[Color] = "Black"
    )

這可使用 IN 運算子簡化︰

Filtered Sales:=CALCULATE (
        [Internet Total Sales], 'Product'[Color] IN { "Red", "Blue", "Black" }
    )

在此情況下, IN 運算子參照有 3 個資料列的單一資料行資料表,每列都有指定的色彩。 請注意,資料表的建構函式語法使用大括號。

IN 運算子的功能等同於 CONTAINSROW 函數:

Filtered Sales:=CALCULATE (
        [Internet Total Sales], CONTAINSROW({ "Red", "Blue", "Black" }, 'Product'[Color])
    )

IN 運算子也可以有效地搭配資料表建構函式。 例如,下列量值會依產品色彩和類別的組合來篩選:

Filtered Sales:=CALCULATE (
        [Internet Total Sales],
        FILTER( ALL('Product'),
              ( 'Product'[Color] = "Red"   && Product[Product Category Name] = "Accessories" )
         || ( 'Product'[Color] = "Blue"  && Product[Product Category Name] = "Bikes" )
         || ( 'Product'[Color] = "Black" && Product[Product Category Name] = "Clothing" )
        )
    )

使用新的 IN 運算子,上述的量值運算式現在即等同於下列運算式︰

Filtered Sales:=CALCULATE (
        [Internet Total Sales],
        FILTER( ALL('Product'),
            ('Product'[Color], Product[Product Category Name]) IN
            { ( "Red", "Accessories" ), ( "Blue", "Bikes" ), ( "Black", "Clothing" ) }
        )
    )

其他改善

除了所有新功能之外,Analysis Services、SSDT 和 SSMS 也包含下列改善:

  • 階層和資料行重複使用會顯示在 Power BI 欄位清單中的更實用位置。
  • 日期關聯性,可根據日期欄位輕鬆建立日期維度的關聯性。
  • Analysis Services 的預設安裝選項現在適用于表格式模式。
  • 新的取得資料 (Power Query) 資料來源。
  • SSDT 的 DAX 編輯器。
  • M 查詢的現有 DirectQuery 資料來源支援。
  • SSMS 改善,例如結構化資料來源的檢視、編輯和腳本支援。

SSAS 2017 中已被取代的功能

此版本中已 淘汰 下列功能:

模式/類別 功能
多維度 資料採礦
多維度 遠端連結量值群組
表格式 1100 和 1103 相容性層級的模型
表格式 表格式物件模型屬性 - Column.TableDetailPosition、Column.IsDefaultLabel、Column.IsDefaultImage
工具 SQL Server Profiler for Trace Capture

取代為使用 SQL Server Management Studio 內嵌的擴充事件分析工具。
請參閱 Monitor Analysis Services with SQL Server Extended Events
工具 Server Profiler for Trace Replay
取代。 沒有任何取代項目。
追蹤管理物件和 Trace API Microsoft.AnalysisServices.Trace 物件 (包含 Analysis Services Trace 和 Replay 物件的 API)。 取代為多部分:

- 追蹤組態:Microsoft.SqlServer.Management.XEvent
- 追蹤讀取:Microsoft.SqlServer.XEvent.Linq
- 追蹤重新執行:無

SSAS 2017 中已停止的功能

此版本中 已停止 下列功能:

模式/類別 功能
表格式 VertiPaqPagingPolicy 記憶體屬性值 (2) ,使用記憶體對應檔案啟用分頁至磁片。
多維度 遠端分割區
多維度 遠端連結量值群組
多維度 維度回寫
多維度 連結維度

SSAS 2017 的重大變更

此版本中沒有 重大變更

SSAS 2017 的行為變更

MDSCHEMA_MEASUREGROUP_DIMENSIONS和DISCOVER_CALC_DEPENDENCY的變更,詳述于SQL Server 2017 CTP 2.1 for Analysis Services 公告的新功能

SQL Server 2016 Analysis Services

SQL Server 2016 Analysis Services 包含許多新的增強功能,可提供改善的效能、更容易的解決方案撰寫、自動化資料庫管理、雙向交叉篩選的增強關聯性、平行資料分割處理等等。 此版本中的大多數增強功能的核心是針對表格式模型資料庫新增的相容性層級 1200。

SQL Server 2016 Service Pack 1 (SP1) Analysis Services

下載 SQL Server 2016 SP1

SQL Server 2016 Service SP1 Analysis Services 透過非統一記憶體存取 (NUMA) 感知來提升效能和延展性,並根據 Intel Threading Building Blocks (Intel TBB) 來提供最佳化的記憶體配置。 這項新功能藉由在數量更少但更強大的企業伺服器上支援更多使用者,來協助降低擁有權總成本 (TCO)。

具體而言,SQL Server 2016 SP1 Analysis Services 在下列主要領域做了改進:

  • NUMA 感知 - 為了改進 NUMA 支援,Analysis Services 內部的記憶體內 (VertiPaq) 引擎現在可以在每個 NUMA 節點上維護個別工作佇列。 如此可確保區段掃描工作會在為區段資料配置記憶體的相同節點上執行。 請注意,預設只會在至少有四個 NUMA 節點的系統上啟用 NUMA 感知。 在兩個節點系統上,存取遠端配置記憶體的成本通常不保證管理 NUMA 特定專案的額外負荷。
  • 記憶體配置 - Analysis Services 已透過 Intel Threading Building Blocks 加速,此可調式配置器會為每個核心提供不同的記憶體集區。 當核心數目增加時,系統幾乎能夠以線性方式調整。
  • 堆積片段 - Intel TBB 型可調式配置器也有助於減輕因 Windows 堆積中已出現之堆積片段所造成的效能問題。

效能及延展性測試已顯示在大型多重節點企業伺服器上執行 SQL Server 2016 SP1 Analysis Services 時,查詢輸送量會大幅提升。

雖然此版本中的大多數增強功能是表格式模型特定的增強功能,但是對於多維度模型也已進行了一些改進;例如,DB2 和 Oracle 等資料來源的相異計數 ROLAP 最佳化、使用 Excel 2016 的鑽研複選支援,以及 Excel 查詢最佳化。

SQL Server 2016 正式運作 (GA) Analysis Services

模型化

提升表格式 1200 模型的模型化效能

對於表格式 1200 模型,SSDT 中的中繼資料作業比表格式 1100 或 1103 模型更快。 經由比較,在相同的硬體上,在設為 SQL Server 2014 相容性層級 (1103) 的模型上建立 23 個資料表的關聯性需要 3 秒,而在設為相容性層級 1200 的模型上建立相同的關聯性則不到一秒。

SSDT 中表格式 1200 模型新增的專案範本

在此版本中,您不再需要兩個版本的 SSDT 來建置關聯式和 BI 專案。 SQL Server Data Tools for Visual Studio 2015 新增 Analysis Services 解決方案的專案範本,包括用來在 1200 相容性層級建置模型的 Analysis Services 表格式專案 。 也包含多維度和資料採礦解決方案的其他 Analysis Services 專案範本,但與舊版相同功能等級 (1100 或 1103) 。

顯示資料夾

表格式 1200 模型現在提供顯示資料夾。 顯示資料夾定義於 SQL Server Data Tools 並呈現在用戶端應用程式 (如 Excel 或 Power BI Desktop) 中,有助於將大量的量值組織成個別的資料夾,並新增一個視覺階層,以便在欄位清單中瀏覽。

雙向交叉篩選

此版本中有內建的新方法可以啟用表格式模型中的雙向交叉篩選,因此不需要透過自訂 DAX 因應措施在資料表關聯性之間散佈篩選內容。 可以建立高度確定的方向時,才會自動產生篩選。 如果資料表關聯性之間有多個查詢路徑的形式模糊不清,將不會自動建立篩選。 如需詳細資訊,請參閱 SQL Server 2016 Analysis Services 中適用於表格式模型的雙向交叉篩選

翻譯

您現在可以在表格式 1200 模型中儲存已翻譯的中繼資料。 模型中的中繼資料包含 Culture、已轉譯標題和已轉譯描述的欄位。 若要新增翻譯,請使用 SQL Server Data Tools 中的模型>翻譯命令。 如需詳細資訊 ,請參閱 Analysis Services) (表格式模型中的翻譯

貼上的資料表

您現在可以在模型包含貼上的資料表時,將 1100 或 1103 表格式模型升級為 1200。 建議您使用 SQL Server Data Tools。 在 SSDT 中,將CompatibilityLevel設定為 1200,然後部署到 SQL Server Analysis Services 的 SQL Server 2017 實例。 如需詳細資訊,請參閱 Compatibility Level for Tabular models in Analysis Services

SSDT 中的導出資料表

「導出資料表」 是以 SSDT 中的 DAX 運算式或查詢為基礎的僅限模型建構。 部署於資料庫時,無法區別計算資料表與一般資料表。

計算資料表有數個用途,包括建立新的資料表,以特定角色公開現有的資料表。 典型的範例是在多個內容 (訂單日期、出貨日期等) 中運作的日期資料表。 藉由建立特定角色的計算資料表,您現在可以啟動資料表關聯性,以使用計算資料表來促進查詢或資料互動。 計算資料表的另一個用途是將現有資料表的各部分合併成只存在於模型中的全新資料表。 若要深入瞭解 ,請參閱建立匯出資料表

公式修復

在表格式 1200 模型中修正公式時,SSDT 會自動更新任何參考重新命名之資料行或資料表的量值。

Visual Studio 組態管理員支援

為了支援多個環境 (例如測試和生產前環境),Visual Studio 允許開發人員使用組態管理員建立多個專案組態。 多維度模型已經運用這項功能,但表格式模型則未運用。 在此版本中,您現在可以使用組態管理員來部署到不同的伺服器。

執行個體管理

管理 SSMS 中的表格式 1200 模型

在此版本中,表格式伺服器模式中的 Analysis Services 執行個體可以執行任何相容性層級 (1100、1103、1200) 的表格式模型。 最新版的 SQL Server Management Studio 已更新,可以顯示屬性並提供 1200 相容性層級之表格式模型的資料庫模型管理。

平行處理表格式模型中的多個資料表資料分割

此版本為具有兩個或多個資料分割的資料表提供新的平行處理功能,以提高處理效能。 此功能沒有任何組態設定。 如需設定資料分割和處理資料表的詳細資訊,請參閱 表格式模型分割區。

在 SSMS 中將電腦帳戶新增為系統管理員

SQL Server Analysis Services系統管理員現在可以使用SQL Server Management Studio,將電腦帳戶設定為SQL Server Analysis Services系統管理員群組的成員。 在 [選取使用者或群組] 對話方塊中,設定電腦網域的 [位置] ,然後新增 [電腦] 物件類型。 如需詳細資訊,請參閱 Grant server admin rights to an Analysis Services instance (將伺服器管理員許可權授與 Analysis Services 執行個體)。

DBCC for Analysis Services

Database Consistency Checker (DBCC) 會在內部執行,以偵測資料庫負載的潛在資料損毀問題,但如果您懷疑您的資料或模型有問題,也可以視需要執行。 DBCC 會依據模型為表格式或多維度模型而執行不同的檢查。 如需詳細資訊,請參閱 Analysis Services 表格式和多維度資料庫的資料庫一致性檢查程式 (DBCC)

擴充事件更新

此版本會將圖形化使用者介面新增至SQL Server Management Studio,以設定和管理SQL Server Analysis Services擴充事件。 您可以設定即時資料流來即時監視伺服器活動、讓工作階段資料載入記憶體中以便快速分析,或將資料流儲存至檔案以便進行離線分析。 如需詳細資訊,請參閱 使用 SQL Server 擴充事件監視 Analysis Services

指令碼

表格式模型的 PowerShell

此版本包含相容性層級 1200 之表格式模型的 PowerShell 增強功能。 您可以使用所有適用的 Cmdlet,再加上表格式模式特定的 Cmdlet︰ Invoke-ProcessASDatabase 和 Invoke-ProcessTable Cmdlet。

SSMS 指令碼資料庫作業

最新版的 SQL Server Management Studio (SSMS)中,現已針對資料庫命令啟用指令碼,包括 Create、Alter、Delete、Backup、Restore、Attach、Detach。 輸出是 JSON 格式的表格式模型指令碼語言 (TMSL)。 如需詳細資訊 ,請參閱表格式模型指令碼語言 (TMSL) 參考

Analysis Services 執行 DDL 工作

Analysis Services 執行 DDL 工作 現在也接受表格式模型指令碼語言 (TMSL) 命令。

SSAS PowerShell Cmdlet

SSAS PowerShell Cmdlet Invoke-ASCmd 現在接受表格式模型指令碼語言 (TMSL) 命令。 未來版本中可能會更新其他 SSAS PowerShell Cmdlet,以便使用新的表格式中繼資料 (版本資訊中將詳列例外狀況)。 如需詳細資訊,請參閱 Analysis Services PowerShell Reference 。

SSMS 中支援的表格式模型指令碼語言 (TMSL)

您現在可以使用 最新版的 SSMS來建立指令碼,將表格式 1200 模型的大部分管理工作自動化。 目前可以編寫下列工作的指令碼︰任何層級的 Process,以及資料庫層級的 CREATE、ALTER、DELETE。

在功能上,TMSL 相當於可提供多維度物件定義的 XMLA ASSL 延伸模組,不同之處在於 TMSL 會使用 modeltablerelationship 等原生描述元來描述表格式中繼資料。 如需架構的詳細資訊 ,請參閱表格式模型指令碼語言 (TMSL) 參考

針對表格式模型產生的 JSON 型指令碼可能如下所示︰

{
  "create": {
    "database": {
      "name": "AdventureWorksTabular1200",
      "id": "AdventureWorksTabular1200",
      "compatibilityLevel": 1200,
      "readWriteMode": "readWrite",
      "model": {}
    }
  }
}

承載是 JSON 檔,可以像上述範例一樣少,或高度裝飾一組完整的物件定義。 表格式模型指令碼語言 (TMSL) 參考 描述語法。

在資料庫層級,CREATE、ALTER 和 DELETE 命令會在熟悉的 XMLA 視窗中輸出 TMSL 指令碼。 其他命令 (例如 Process) 也可以在此版本中建立指令碼。 未來版本中可能新增許多其他動作的指令碼支援。

可編寫指令碼的命令 描述
建立 新增資料庫、連線或分割區。 ASSL 對等項目為 CREATE。
createOrReplace 藉由覆寫先前的版本來更新現有的物件定義 (資料庫、連線或分割區)。 ASSL 對等項目為 ALTER,其 AllowOverwrite 設定為 true 且 ObjectDefinition 設定為 ExpandFull。
刪除 移除物件定義。 ASSL 對等項目為 DELETE。
refresh 處理物件。 ASSL 對等項目為 PROCESS。

DAX

改良的 DAX 公式編輯

匯報公式列可協助您使用語法著色來區分函式、欄位和量值,以更輕鬆地撰寫公式,它提供智慧型函式和欄位建議,並告訴您 DAX 運算式的元件是否使用錯誤波浪線。 它也可讓您使用多行程式碼 (Alt + Enter 鍵) 和縮排 (Tab 鍵)。 公式列現在也可讓您撰寫批註作為量值的一部分,只要輸入 「//」 ,而且相同行上的這些字元之後的所有專案都會被視為批註。

DAX 變數

此版本現在會在 DAX 中包含變數的支援。 變數現在可以將運算式的結果儲存為具名變數,然後做為引數傳遞至其他量值運算式。 計算變數運算式的結果值之後,即使在另一個運算式中參考變數,這些值也不會變更。 如需詳細資訊,請參閱 VAR 函數

新的 DAX 函數

在此版本中,DAX 引進了超過&50; 個新函數,以在 Power BI 中支援更快速的計算和增強的視覺效果。 如需詳細資訊,請參閱 New DAX Functions(新的 DAX 函數)。

儲存不完整的量值

您現在可以直接在表格式 1200 模型專案中儲存不完整的 DAX 量值,然後在您準備好繼續進行時再次取用。

其他 DAX 增強功能

  • 非空白計算 - 減少非空白所需的掃描數目。
  • 量值融合 - 同一個資料表中的多個量值會結合成單一儲存引擎查詢。
  • 群組集合 - 當查詢要求多種資料粒度 (總計/年/月) 的量值時,會以最低層級傳送單一查詢,並從此最低層級衍生其餘資料粒度。
  • 多餘聯結刪除 - 對儲存引擎的單一查詢會傳回維度資料行和量值。
  • IF/SWITCH 的嚴格評估 - 條件為 false 的分支將不再產生儲存引擎查詢。 之前會積極地評估分支,但之後捨棄結果。

開發人員

AMO 中表格式 1200 可程式性的 Microsoft.AnalysisServices.Tabular 命名空間

Analysis Services 管理物件 (AMO) 會進行更新以納入新的表格式命名空間 (可供管理 SQL Server 2016 Analysis Services 的表格式模式執行個體),以及提供資料定義語言 (可供以程式設計方式建立或修改表格式 1200 模型)。 請瀏覽 Microsoft.AnalysisServices.Tabular 以在 API 上讀取。

Analysis Services 管理物件 (AMO) 更新

Analysis Services 管理物件 (AMO) 已重新納入第二個元件,Microsoft.AnalysisServices.Core.dll。 不論伺服器模式為何,新的組件都會區隔 Analysis Services 中廣泛應用的一般類別 (例如伺服器、資料庫和角色)。 之前,這些類別是原始 Microsoft.AnalysisServices 組件的一部分。 將這些類別移至新的組件即可為 AMO 的未來擴充做好準備,並清楚劃分一般和特定內容的 API。 現有的應用程式不受新的組件影響。 不過,假使您因故選擇使用新的 AMO 組件來重新建置應用程式,請務必新增 Microsoft.AnalysisServices.Core 的參考。 同樣地,載入並呼叫 AMO 的 PowerShell 指令碼現在必須載入 Microsoft.AnalysisServices.Core.dll。 請務必更新任何腳本。

BIM 檔案的 JSON 編輯器

Visual Studio 2015 中的 [程式碼檢視] 現在會針對表格式 1200 模型呈現 JSON 格式的 BIM 檔案。 Visual Studio 的版本可決定是否要透過內建 JSON 編輯器以 JSON 格式呈現 BIM 檔案,或呈現為簡單文字。

若要使用 JSON 編輯器並能夠展開和摺疊模型的區段,您將需要有最新版的 SQL Server Data Tools 和 Visual Studio 2015 (任何版本,包括免費的 Community Edition)。 對於所有其他版本的 SSDT 或 Visual Studio,BIM 檔案會以 JSON 呈現為簡單文字。 至少空的模型會包含下列 JSON:

  {  
    "name": "SemanticModel",
    "id": "SemanticModel",
    "compatibilityLevel": 1200,
    "readWriteMode": "readWrite",
    "model": {}
  }  

警告

請避免直接編輯 JSON。 這麼做可能會損毀模型。

MS-CSDLBI 2.0 結構描述中的新元素

下列元素已新增至 [MS-CSDLBI] 2.0 結構描述中定義的 TProperty 複雜類型:

元素 定義
DefaultValue 一個屬性,可指定在評估查詢時使用的值。 DefaultValue 是選擇性屬性,但如果無法彙總成員所提供的值,則會自動選取該屬性。
統計資料 與資料行相關聯的基礎資料中的一組統計值。 這些統計值是由 TPropertyStatistics 複雜類型所定義,而如概念結構定義檔案格式的 2.1.13.5 節與商業智慧註釋文件所述,只有在不耗費許多資源即可產生時才會提供這些統計值。

DirectQuery

新的 DirectQuery 實作

此版本已大幅改進表格式 1200 模型的 DirectQuery。 摘要如下:

  • DirectQuery 現在會產生較簡單的查詢,進而提供較佳的效能。
  • 定義用於模型設計和測試之範例資料集的額外控制權。
  • DirectQuery 模式中的表格式 1200 模型現在支援資料列層級安全性 (RLS)。 先前,RLS 的存在導致無法在 DirectQuery 模式中部署表格式模型。
  • DirectQuery 模式中的表格式 1200 模型現在支援導出資料行。 先前,導出資料行的存在導致無法在 DirectQuery 模式中部署表格式模型。
  • 效能最佳化包括 VertiPaq 和 DirectQuery 的多餘聯結刪除。

DirectQuery 模式的新資料來源

DirectQuery 模式中表格式 1200 模型支援的資料來源現在包括 Oracle、Teradata 和 Microsoft Analytics Platform (先前稱為平行Data Warehouse) 。 若要深入瞭解,請參閱 DirectQuery 模式

SSAS 2016 中已被取代的功能

此版本中已 淘汰 下列功能:

模式/類別 功能
多維度 遠端分割區
多維度 遠端連結量值群組
多維度 維度回寫
多維度 連結維度
多維度 用於主動式快取的 SQL Server 資料表通知。
取代為使用輪詢進行主動式快取。
請參閱 主動式快取 (維度) 和主動式快取 (分割區)
多維度 工作階段 Cube。 沒有任何取代項目。
多維度 本機 Cube。 沒有任何取代項目。
表格式 未來版本將不支援表格式模型 1100 和 1103 相容性層級。 取代方式是在相容性層級 1200 或更高版本設定模型,並將模型定義轉換成表格式中繼資料。 請參閱 Compatibility Level for Tabular models in Analysis Services
工具 SQL Server Profiler for Trace Capture

取代為使用 SQL Server Management Studio 內嵌的擴充事件分析工具。
請參閱 Monitor Analysis Services with SQL Server Extended Events
工具 Server Profiler for Trace Replay
取代。 沒有任何取代項目。
追蹤管理物件和 Trace API Microsoft.AnalysisServices.Trace 物件 (包含 Analysis Services Trace 和 Replay 物件的 API)。 取代為多部分:

- 追蹤組態:Microsoft.SqlServer.Management.XEvent
- 追蹤讀取:Microsoft.SqlServer.XEvent.Linq
- 追蹤重新執行:無

SSAS 2016 中已停止的功能

此版本中 已停止 下列功能:

功能 取代或解決方法
CalculationPassValue (MDX) 無。 此功能在 SQL Server 2005 中已遭取代。
CalculationCurrentPass (MDX) 無。 此功能在 SQL Server 2005 中已遭取代。
NON_EMPTY_BEHAVIOR 查詢最佳化工具提示 無。 此功能在 SQL Server 2008 中已遭取代。
COM 組件 無。 此功能在 SQL Server 2008 中已遭取代。
CELL_EVALUATION_LIST 內建資料格屬性 無。 此功能在 SQL Server 2005 中已遭取代。

SSAS 2016 的重大變更

.NET 4.0 版本升級

Analysis Services 管理物件 (AMO) 、ADOMD.NET 和表格式物件模型, (TOM) 用戶端程式庫現在以 .NET 4.0 執行時間為目標。 這可能是以 .NET 3.5 為目標之應用程式的重大變更。 使用這些組件之更新版本的應用程式現在必須以 .NET 4.0 或更新版本為目標。

AMO 版本升級

此版本是 Analysis Services 管理物件的版本升級, (AMO) ,而且在特定情況下是重大變更。 現有可呼叫 AMO 的程式碼和指令碼將會繼續執行,就和從舊版升級之前一樣。 不過,如果您需要重新編譯您的應用程式,而且以 SQL Server 2016 Analysis Services 實例為目標,您必須新增下列命名空間,讓您的程式碼或腳本運作:

using Microsoft.AnalysisServices;  
using Microsoft.AnalysisServices.Core;  

每當您參考程式碼中的 Microsoft.AnalysisServices 組件,就會需要 Microsoft.AnalysisServices.Core 命名空間。 如果物件在表格式和多維度狀況中依相同的方式使用,則先前僅存在於 Microsoft.AnalysisServices 命名空間內的物件,在此版本中將會移至核心命名空間。 例如,與伺服器相關的 API 將重新放置到核心命名空間。

雖然現在有多個命名空間,且都存在於相同的組件中 (Microsoft.AnalysisServices.dll)。

XEvent DISCOVER 變更

為了更妥善地支援 SSMS 中適用于 SQL Server 2016 Analysis Services 的 XEvent DISCOVER 串流, DISCOVER_XEVENT_TRACE_DEFINITION 會取代為下列 XEvent 追蹤:

  • DISCOVER_XEVENT_PACKAGES

  • DISCOVER_XEVENT_OBJECT

  • DISCOVER_XEVENT_OBJECT_COLUMNS

  • DISCOVER_XEVENT_SESSION_TARGETS

SSAS 2016 的行為變更

SharePoint 模式的 Analysis Services

不再需要執行 [Power Pivot 組態精靈] 作為後續安裝工作。 這適用于從目前 SQL Server 2016 Analysis Services 載入模型的所有支援 SharePoint 版本。

表格式模型的 DirectQuery 模式

DirectQuery 是表格式模型的資料存取模式,其中,會對後端關聯式資料庫執行查詢執行,以即時擷取結果集。 這通常用於無法放入記憶體的極大型資料集,或是資料是暫時性的而且您想要有表格式模型的查詢中所傳回的最新資料時。

DirectQuery 已是最後數個版本的資料存取模式。 在 SQL Server 2016 Analysis Services 中,假設表格式模型在相容性層級為 1200 或更高版本,實作已稍微修改。 DirectQuery 的限制比以前少。 它也有不同的資料庫屬性。

如果您在現有表格式模型中使用 DirectQuery,則可以保留模型的目前相容性層級 1100 或 1103,並繼續使用 DirectQuery 作為這些層級的實作。 或者,您也可以升級至 1200 或更新版本,以受益于 DirectQuery 的增強功能。

DirectQuery 模型沒有就地升級,因為較舊相容性層級的設定在較新的 1200 和更高相容性層級中沒有確切的對應專案。 如果您有在 DirectQuery 模式中執行的現有表格式模型,您應該以SQL Server Data Tools開啟模型、關閉 DirectQuery、將相容性層級屬性設定為 1200 或更新版本,然後重新設定 DirectQuery 屬性。 如需詳細資訊,請參閱 DirectQuery 模式

定義

在未來的版本中,產品將會停止已 淘汰的功能 ,但仍受到支援並包含在目前版本中,以維持回溯相容性。 建議您在新的和現有的專案中停止使用已被取代的功能,以維持與未來版本的相容性。 檔不會針對已被取代的功能進行更新。

停止的功能 在舊版中已被取代。 它可能會繼續包含在目前的版本中,但不再受到支援。 已停止的功能可能會完全在所述或未來的版本中移除。

重大變更會導致功能、資料模型、應用程式程式碼或腳本在升級至目前版本之後不再運作。

相較于舊版 ,行為變更 會影響目前版本中相同功能的運作方式。 只會描述重大的行為變更。 不包含使用者介面中的變更。 變更預設值、完成升級或還原功能所需的手動設定,或現有功能的新實作都是行為變更的範例。