SSAS 最佳實踐和效能優化(3)

2021-12-30 12:46:29 字數 1715 閱讀 6533

有幾個方面可能會影響分析服務cube的效能。比如,源系統,cube和mdx查詢的設計,網路問題。在這一節,將討論在設計和開發分析服務多維資料集時應該考慮的一些最佳實踐。

在本系列的第1部分中,我們討論了典型的ssas應用程式架構和ssas內部架構的不同元件,以及不同元件和區域對效能改進所扮演的角色。在原文第2部分中,討論了源系統設計和網路考慮,翻譯版中刪除了這一部分內容。在第2部分中,談到了多維資料集設計和開發。在本文中,將與您分享伺服器資源和報表服務的最佳實踐和效能優化技術。

在本節中,將討論一些ssas例項屬性,這些屬性將影響多維資料集處理和查詢響應的總體效能。

在ssas中線程或並行處理

ssas被設計成並行執行它的操作,因此它可以建立多個執行緒來並行執行多個請求。由於建立和銷毀執行緒是一項昂貴的事務,ssas維護了兩組工作執行緒池,以返回當前未使用的執行緒,因此ssas可以再次將它們用於服務其他請求。這兩個池稱為查詢執行緒池和程序執行緒池。

如果你還記得本系列的第一節介紹的ssas架構.xmla偵聽器偵聽傳入的請求,並建立(或者使用查詢執行緒池中空閒的執行緒)查詢執行緒檢查資料/計算公式引擎快取。如果快取中沒有想要的資料,xmla偵聽器建立或使用乙個處理執行緒來從儲存引擎快取或磁碟中檢索資料。程序執行緒還會將在從磁碟檢索到的資料儲存到儲存引擎快取中,同時查詢執行緒將聚合資料儲存到公式引擎快取中以服務將來的查詢。

因此,現在我們了解了ssas能夠建立的執行緒越多,可以並行處理的請求就越多。但是,可以建立多少個執行緒呢?可以通過設定一些ssas例項屬性來控制它

threadpool\query\minthreads(max)

這兩個屬性決定了可以由ssas建立的最小和最大查詢執行緒數。

threadpool\process\minthreads(max)

這兩個屬性決定了可以由ssas建立的最小和最大處理執行緒數。

olap\process\buffermemorylimit

ssas在事實表分割槽處理過程中使用緩衝區來臨時儲存資料,然後在處理結束後將資料寫到磁碟上。

olap\process\aggregationmemorylimitmin(max)

預設的最小值為10%,最大值為80%。這表示可以在每個分割槽中建立聚合使用的最小和最大百分比的ssas記憶體。如果有很多的分割槽在並行處理,則應該考慮將其保持在低位,以提高processindexes的效能(在每個分割槽中建立聚合)。

datadir和logdir

預設資料檔案和日誌檔案儲存位置。可以考慮將這些檔案儲存在更快的磁碟驅動器。

log\flightrecorder\enabled

預設狀態是on,它在乙個短期日誌檔案中記錄ssas活動。這個日誌對處理和查詢效能故障排除非常有用,但同時也會增加i / o開銷。所以理想情況下,應該在生產環境中設定為off,並且只在需要時啟用它。

報告設計與開發

sql server reporting services(ssrs)是sql server商業智慧型的報表元件。可以基於任何資料來源建立報表,包括ssas。當建立ssrs報表時,應該遵循一些最佳實踐,以獲得更好的用經驗。

1.資料來源級別過濾資料,而不是報表級別

2.啟用報告快取或快照

3.為報表建立標準或資料驅動的訂閱

4.考慮ssrs部署的擴充套件性

SSAS 最佳實踐和效能優化(1)

一般analysis services cube的效能問題可能由多方面的原因造成。源系統,cube設計,mdx查詢,網路問題等因素都可能導致效能問題的產生。在這個系列文章中,我會分享一些設計和開發cube的最佳實踐和可以用來解決現存一些效能問題的小技巧。下面的架構圖展示了經典的微軟bi應用架構,從左...

最佳實踐React效能優化

1 基本使用 使用方法 import react,from react import from utils const loadinghome dynamic import components home const loadinguser dynamic import components use...

MySQL 的效能優化最佳實踐

資料庫操作是當今 web 應用程式中的主要瓶頸。不僅是 dba 資料庫管理員 需要為各種效能問題操心,程式設計師為做出準確的結構化表,優化查詢效能和編寫更優 也要費盡心思。在本文中,我列出了一些針對程式設計師的 mysql 優化技術。在我們開始學習之前,我補充一點 你可以在 envato marke...