共用方式為


SQL Server Analysis Services 的新功能

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

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

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 數據。

若要深入瞭解,請參閱針對語意模型和 Analysis Services 使用 DirectQuery |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 模式 Power Pivot 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 的附加> 命令會在伺服器 B 上執行,且其新位置為 DB1 (第 2 版)。

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

指定這個新旗標時,資料庫第 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,然後在 Properties中,將 [兼容性層級] 屬性設定為 [SQL Server 2017 (1400)

AS_Model_Properties

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

新式取得數據體驗

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

新式 Get Data 體驗提供各種數據源的支援。 接下來,更新將包含更多支援。

AS_Get_Data_in_SSDT

功能強大的直覺式使用者介面可讓您比以往更輕鬆地選取您的數據和數據轉換/混搭功能。

進階混搭

新式 Get Data 體驗和 Mashup 功能不適用於從 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 Members 屬性設定為 [隱藏空白成員]

AS_Hide_Blank_Members

注意

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

當設定為 隱藏空白成員,且已部署的模型時,報表用戶端會顯示像是 Excel 的階層更容易閱讀版本。

AS_Non_Ragged_Hierarchy

詳細數據列

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

下列數據透視表顯示 Adventure Works 範例表格式模型的因特網總銷售額逐年。 您可以用滑鼠右鍵按兩下量值匯總的數據格,然後按兩下 [顯示詳細資料] 檢視詳細資料列。

AS_Show_Details

根據預設,會顯示 Internet Sales 數據表中的相關聯數據。 這種有限的行為通常對用戶沒有意義,因為數據表可能沒有必要的數據行來顯示有用的資訊,例如客戶名稱和訂單資訊。 使用詳細數據列,您可以為量值指定 詳細數據列表達式 屬性。

量值的詳細數據列表達式屬性

量值 詳細數據列表達式 屬性可讓模型作者自定義傳回給使用者的數據行和數據列。

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

數據表的預設詳細數據列表達式屬性

除了量值之外,數據表也有屬性可定義詳細數據列表達式。 預設詳細數據列表達式 屬性會做為數據表內所有量值的預設值。 未定義自己的表達式的量值會繼承數據表中的表示式,並顯示針對數據表定義的數據列集。 這允許重複使用表達式,而新增至數據表的新量值稍後會自動繼承表達式。

AS_Default_Detail_Rows_Expression

DETAILROWS DAX 函式

此版本中包含新的 DETAILROWS DAX 函式,可傳回詳細數據列表達式所定義的數據列集。 它的運作方式與 MDX 中的 DRILLTHROUGH 語句類似,其也與表格式模型中定義的詳細數據列表達式相容。

下列 DAX 查詢會傳回量值或其數據表的詳細數據列表示式所定義的數據列集。 如果未定義表達式,則會傳回 Internet Sales 數據表的數據,因為它是包含量值的數據表。

EVALUATE DETAILROWS([Internet Total Sales])

物件層級安全性

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

物件層級安全性必須使用 JSON 型元數據、表格式模型腳本語言 (TMSL) 或表格式物件模型 (TOM) 來設定。

例如,下列程式代碼可藉由將 tablePermission 類別的 MetadataPermission 屬性設定為 None,協助保護範例 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

取代是使用內嵌在 SQL Server Management Studio 中的擴充事件分析工具。
請參閱 使用 SQL Server 擴充事件監視 Analysis Services
工具 追蹤重新執行的伺服器分析工具
更換。 沒有取代。
追蹤管理對象和追蹤 API Microsoft.AnalysisServices.Trace 物件(包含 Analysis Services 追蹤和重新執行物件的 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 公告的 新功能。

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 線程建置組塊 (Intel TBB) 提供改善的效能和延展性。 這項新功能可藉由支援較少且功能更強大的企業伺服器上更多使用者,協助降低總擁有成本(TCO)。

特別是 SQL Server 2016 SP1 Analysis Services 功能在這些主要領域有改善:

  • NUMA 感知 - 為了獲得更好的 NUMA 支援,Analysis Services 內的記憶體內部 (VertiPaq) 引擎現在會在每個 NUMA 節點上維護個別的工作佇列。 這可確保區段掃描作業會在配置記憶體給區段數據的相同節點上執行。 請注意,NUMA 感知預設只會在至少有四個 NUMA 節點的系統上啟用。 在雙節點系統上,存取遠端配置記憶體的成本通常不保證管理NUMA 細節的額外負荷。
  • 記憶體配置 - Analysis Services 已使用 Intel 線程建置組塊加速,這是一個可調整的配置器,可為每個核心提供個別的記憶體集區。 隨著核心數目的增加,系統幾乎可以線性調整。
  • 堆積片段 - 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 解決方案的專案範本,包括 Analysis Services 表格式專案 用於在 1200 兼容性層級建置模型。 也包含多維度和數據採礦解決方案的其他 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 中使用 Model>Translations 命令。 如需詳細資訊,請參閱表格式模型中的 翻譯

貼上的數據表

當模型包含貼上的數據表時,您現在可以將 1100 或 1103 表格式模型升級至 1200。 我們建議使用 SQL Server Data Tools。 在 SSDT 中,將 CompatibilityLevel 設定為 1200,然後部署至 SQL Server Analysis Services 的 SQL Server 2017 實例。 如需詳細資訊,請參閱 Analysis Services 中表格式模型的 相容性層級。

SSDT 中的匯出數據表

計算數據表 是以 SSDT 中的 DAX 運算式或查詢為基礎的僅限模型建構。 在資料庫中部署時,匯出數據表與一般數據表不區分。

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

公式修正

在表格式 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 系統管理員群組的成員。 在 [選取使用者或群組] 對話框中,設定計算機網域的 [位置],然後新增 [計算機] 物件類型。 如需詳細資訊,請參閱 將伺服器管理員許可權授與 Analysis Services 實例

DBCC for Analysis Services

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

擴充事件更新

此版本會將圖形使用者介面新增至 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 參考。

SSMS 中支援的表格式模型文稿語言 (TMSL)

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

在功能上,TMSL 相當於提供多維度物件定義的 XMLA ASSL 延伸模組,不同之處在於TMSL會使用原生描述項,例如 模型數據表,以及 關聯性 來描述表格式元數據。 如需架構的詳細資訊,請參閱 表格式模型腳本語言 (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。
刷新 處理物件。 ASSL 對等專案是 PROCESS。

DAX

改善的 DAX 公式編輯

公式列的更新可協助您更輕鬆地撰寫公式,方法是使用語法著色來區分函式、字段和量值,它提供智慧型手機式和字段建議,並告訴您 DAX 表達式的某些部分使用錯誤 波浪線。 它也可讓您使用多行 (Alt + Enter) 和縮排 (Tab)。 公式列現在也可讓您撰寫批註做為量值的一部分,只要輸入 “@” ,相同行上的這些字元之後的所有專案都會被視為批注。

DAX 變數

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

新的 DAX 函式

透過此版本,DAX 引進了五十多個新的函式,以支援Power BI中更快的計算和增強視覺效果。 若要深入瞭解,請參閱 新的 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 中的程式代碼檢視現在會以 JSON 格式呈現表格式 1200 模型的 BIM 檔案。 Visual Studio 版本會決定 BIM 檔案是透過內建 JSON 編輯器轉譯為 JSON,還是以簡單文字呈現。

若要使用 JSON 編輯器,能夠展開和折疊模型的區段,您將需要最新版本的 SQL Server Data Tools 加上 Visual Studio 2015(任何版本,包括免費的 Community 版本)。 針對所有其他版本的 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(先前稱為平行處理數據倉儲)。 若要深入瞭解,請參閱 DirectQuery 模式

SSAS 2016 中已被取代的功能

下列功能在此版本中 已被取代

模式/類別 特徵
多面的 遠端數據分割
多面的 遠端連結量值群組
多面的 維度回寫
多面的 連結維度
多面的 主動式快取的 SQL Server 數據表通知。
取代是使用輪詢進行主動式快取。
請參閱 主動式快取主動式快取
多面的 會話 Cube。 沒有取代。
多面的 本機 Cube。 沒有取代。
表格式的 未來版本不支援表格式模型 1100 和 1103 相容性層級。 取代專案是在相容性層級 1200 或更高版本設定模型,將模型定義轉換為表格式元數據。 請參閱 Analysis Services中表格式模型的 相容性層級。
工具 追蹤擷取的 SQL Server Profiler

取代是使用內嵌在 SQL Server Management Studio 中的擴充事件分析工具。
請參閱 使用 SQL Server 擴充事件監視 Analysis Services
工具 追蹤重新執行的伺服器分析工具
更換。 沒有取代。
追蹤管理對象和追蹤 API Microsoft.AnalysisServices.Trace 物件(包含 Analysis Services 追蹤和重新執行物件的 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 命名空間中的物件會移至此版本中的 Core 命名空間。 例如,伺服器相關 API 會重新配置至 Core 命名空間。

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

XEvent DISCOVER 變更

為了更妥善地支援 SSMS for 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 作為針對這些層級實作的 DirectQuery。 或者,您可以升級至 1200 或更新版本,以受益於 DirectQuery 的增強功能。

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

定義

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

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

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

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