Sql-Server

DBA 必須了解哪些有關 SSAS 的知識?

  • August 16, 2021

我看過很多關於 SSAS 業務方面的資料,但關於行政和管理的重要方面的資料並不多。

從管理 SQL Server Analysis Services 實例的角度來看,工作的 DBA 必須了解哪些有關 SSAS 的知識才能正確有效地管理它?

DBA 的 SSAS 快速概覽

因此,您是一名 SQL Server DBA,並且您剛剛繼承了一些需要管理的多維數據集。關於 SSAS 管理的快速速成課程似乎是有序的。

從管理的角度來看,SSAS 是一個相當簡單的應用程序,但需要大量資源。它比 DBMS 平台簡單得多,儘管在幾個方面有所不同。此外,還有一些管理任務,例如特定於 SSAS 的基於使用的優化,您可能需要考慮這些任務。

備份你的配置文件

所有配置數據都保存在一個名為msdmsrv.ini. 它是一個 XML 文件。如果您通過 SSMS 修改配置(連接到伺服器,右鍵點擊伺服器,選擇屬性),您可以設置將在啟動時中斷伺服器的選項。msmdsrv.ini在玩任何東西之前先複製一份。

重要參數

記憶: SSAS 是聖經中的記憶豬。如果可能的話,牠喜歡 64 位版本和大量記憶體。參數‘Memory\LowMemoryLimit’ 和 ‘Memory\HighMemoryLimit’控制記憶體使用策略。LowMemoryLimit 不是最小記憶體分配。這是 SSAS 認為系統記憶體不足並開始從其記憶體中刷新內容的門檻值。HighMemoryLimit 是它將使用的絕對最大值。

請注意,SSAS 將其數據儲存在文件中(大量文件 - 它沒有任何與文件組等效的機制),因此它大量使用 O/S 文件系統記憶體來處理這些文件。請注意,這些限制的預設值分別約為機器記憶體的 65% 和 80%,因此如果您希望 OLAP 伺服器與 SQL Server 實例共存,則需要將其關閉,以免與數據庫伺服器。

目錄: 五個感興趣的參數包括:DataDir、AllowedBrowsingFolders、BackupDir、LogDir 和 TempDir。DataDir 和 AllowedBrowsingFolders 是最重要的。

  • AllowedBrowsingFolders會影響 OLAP 伺服器將其數據文件放入的文件夾列表。任何帶有使用者界面(例如部署嚮導)的東西都會將您的選項限制在 AllowedBrowsingFolders 中的列表中。該值是一個以豎線 (’|’) 分隔的目錄列表。
  • DataDir是文件的預設路徑。如果您打算將多維數據集劃分為多個卷,則需要適當地配置 AllowedBrowsingFolders。
  • LogDir是伺服器放置各種日誌文件的地方,包括飛行記錄器和查詢日誌。飛行記錄器日誌用於故障排除,OLAP 查詢日誌用於基於使用的優化(稍後會詳細介紹)。
  • TempDir是 SSAS 在處理時創建的臨時文件的位置。如果您正在處理大量數據並遇到性能問題,您可能會受益於將其從數據轉移到另一個卷上。
  • BackupDir就是它在錫上所說的。

雜項: 一些雜項參數也可能是有意義的。您可能需要調整的幾組是:

  • *DefaultMaxDrillthroughRows:*這限制了鑽取行集的大小。您可能需要擺弄這個以允許更多。
  • *執行緒/超時:*您可能需要調整這些。我從來不用打擾。

這些是基礎。出於特定原因,您可能需要調整其他內容,但您可以為此做功課。

可以在此處找到 SSAS 伺服器屬性的參考指南。

運營

部署: 您可以在 BIDS 中編譯一個項目,並獲得一組可以使用部署嚮導進行部署的文件。 您可能需要調整分區的文件路徑和其他一些事情。

**程式和批處理管理任務:**通過稱為 XML/A 的 Web 服務 API 向 SSAS 發出命令。Microsoft 提供了一個互動式工具來發布 MDX 和 XML/A connands。如果您必須在 XML/A 命令中嵌入 MDX,請注意是否需要使用 XML 轉義符,例如&. 這不是 SSMS 中的 MDX 編輯器和查詢工具的問題。

離線作業可以通過各種 SSIS 多維數據集處理任務、稱為命令行實用程序ascmd.exe或稱為 AMO 的 .Net API 來完成。您還可以獲得各種 powershell 工具等。 ascmd.exe獲取一個 XML/A 文件並將其發佈到伺服器。如果您必須以程式方式處理文件,則最好使用少量 .Net 工具,而不是嘗試從 .cmd 腳本操作 XML 文件。

操作指南對此進行了更詳細的介紹。

安全

SSAS 的安全性相當簡單。它有一個全域“伺服器”角色,具有跨整個系統的管理權限。不幸的是,您需要“伺服器”來創建數據庫,因此您很可能需要將它授予您擁有的任何開發 OLAP 伺服器上的開發人員。

其他安全性只能應用於單個多維數據集模式。您可以將對單個項目的讀取、處理、鑽取、寫回等權限授予架構中的角色。OLAP 模式上的角色可以在 BIDS 中定義並與多維數據集一起部署。AD 組或使用者可以通過 SSMS 分配給這些角色。

可以在此處查看如何以程式方式管理角色成員資格的範例。

基於使用的優化

作為一名 DBA,您可能會參與其中,但首先要了解一些有關物理儲存的背景知識。SSAS 通過計算和持久化預建構的聚合以及基礎數據來工作。如果可以通過點擊聚合來滿足查詢,則 OLAP 伺服器將優先使用此聚合而不是基本數據,因為聚合將涉及更少的 I/O,因此檢索數據會更快。

但是,您必須確定要計算哪些聚合(即要為其生成匯總的維度屬性組合)。BIDS 有一個工具可以對此進行猜測並為您生成一些。一些工具,例如BIDS 助手也將允許您手動編輯聚合。

基於使用情況的優化通過記錄發送到伺服器的實際查詢的日誌,然後使用該日誌計算出一組對這些查詢來說是最佳的聚合。作為 DBA,您可以設置 OLAP 查詢日誌記錄來擷取這些數據,然後在多維數據集上執行優化。可以在此處找到有關設置查詢日誌的簡介。

執行此操作的工具稱為“基於使用的優化嚮導”。 這存在於 SSMS 中,可以通過在資源管理器中打開分區並從右鍵菜單中選擇“基於使用的優化”來找到。

性能指南更詳細地介紹了調整。

MDX

MDX看起來有點像 SQL,但工作方式卻大不相同。一篇關於“面向 SQL 程序員的 MDX”的論文本身就是一個完整的主題。我建議閱讀一些關於它的教程和/或買一本關於它的書。另外,如果您有任何問題,dba.se 的友好人員可以幫助您解決問題。

MDX 沒有任何過濾行的概念。該語言有很多集合操作來計算在查詢1的各個軸上顯示的內容,以及“SELECT”。您可以使用with看起來有點像 CTE 的語句來定義度量和集合。

可以在此處此處找到一些介紹性 MDX 程式資源(這個非常古老且冗長)。還有一些關於這個主題的好書;這個 SO question對 SSAS 資源有很多扇出。

1雖然它確實有非空運算符,將結果限制為實際有數據的組合。大多數 MDX 查詢包括定義要在軸上顯示的切片,並且非空運算符將是必要的,以避免查詢返回組合級別數量的空單元格。

引用自:https://dba.stackexchange.com/questions/14600