BI 規劃解決方案與案例中的效能考量與方法
適用版本: SharePoint Server 2010 Enterprise
上次修改主題的時間: 2016-11-30
本文內容:
效能考量
安全性和角色
效能考量
設計和設定
規劃程序需要將維度大小保持地愈小愈好。
將 Cube 中使用的維度數保持為規劃所需的最小值。
如果可能,請避免進行 MdxScript 計算,並將用戶端計算 (例如工作表 Excel 或排程為定期執行的關聯式計算 (即為貨幣轉換) 的使用最大化。
使用 MdxScript 規則時,請全面地檢查邏輯正確性和其效能。有時可以修改 MdxScript 陳述式,透過稍微不同但邏輯相同的相等方式來產生較大的效能改善。
避免極深的電腦階層。
設計報表和輸入表單時,請避免複雜 MDX 查詢。包含 "WITH" 陳述式和其他已計算成員的查詢,會導致 Microsoft SQL Server Analysis Services (SSAS) 電腦使用有限的快取邏輯,因此導致較少的範圍和效能
如果使用一組大型資料,請建立多個分割區對靜態與動態資料進行最佳管理。
套用儲存格層級安全性時,因為快取邏輯有限,所以請避免在角色安全性定義內使用儲存格層級安全性。
表單大小、版面配置和使用
設計表單 (樞紐分析表),使其使用篩選和交叉分析篩選器來限制儲存格數目以及查詢表單 (即,設計的表單不提供所有可能的資料輸入,但是提供篩選或交叉分析篩選器,讓表單版面配置 (大小) 在版面配置部分保持一致,然後變更交叉分析篩選器以進行樞紐分析)。
具有多個樞紐分析表會增加查詢和回應時間。建議限制相同工作表以及相同活頁簿中的樞紐分析表數目。
設計表單和報表時,請將篩選的預設值設定為階層的最低層級成員。這樣可允許預設查詢放棄 Cube 的不必要彙總計算。
請不要在用戶端上保留大型變更 (例如,Excel 樞紐分析表的回寫變更內),而且將這些變更漸進式發佈至伺服器,以獲取 SQL Server Analysis Services 的最佳執行時間效能。
支援遠端使用者
WAN 上遠端使用者的網路和回應時間較慢。若要服務遠端使用者,則最好執行下列動作:
提供較接近其實體位置的專屬 SQL/SharePoint 執行個體。
提供較接近 SQL/SharePoint 伺服器的電腦上 Excel 的遠端桌面服務存取。
如需詳細資訊,請參閱 SQL Server 2008 白皮書:Analysis Services 效能指南 (可能為英文網頁)。
ETL 考量
ETL 是一種程序,可從來源系統擷取資料、轉換該資料,並將它載入至資料模型。SQL Server Integration Services 是使用 ETL 程序的 Microsoft 領先技術。資料整合者使用 Microsoft Business Intelligence Development Studio BIDS 來設計 SSIS 封裝,優點如下:
針對合併資料集、欄查閱、錯誤處理等作業,存取內建 ETL 邏輯的大型程式庫。
針對從來源載入至目的地的資料,進行快速資料傳送。
UI 以視覺化 ETL 程序。
規劃 ETL 封裝可以分成下列部分:
維度、階層和事實的資料匯入。
從事實資料表到來源系統的資料匯出。
資料匯入
在我們的解決方案中,將會為關聯式資料庫中的每個維度、階層和事實資料表建立臨時資料表。臨時資料表一開始會做為從來源系統載入資料的目標資料表。可能會執行 ETL,但根本未使用任何臨時資料表,原因是 SSIS 具有轉換記憶體中大部分資料以及直接載入至解決方案資料表的功能。不過,具有臨時資料表的優點如下:
從來源系統產生資料表和關聯的 Snapshot,以簡化資料的版本,而不會有遺失來源系統未來存取的風險,或受限於非預期的資料變更。
輕鬆稽核臨時資料,再將其推入解決方案資料表中。例如,您可能決定只在某人檢查臨時資料表的正確性之後才大量載入所有解決方案資料表。
將資料載入至臨時資料表並完成必要轉換之後,就可以開始從臨時資料表載入至解決方案資料表的程序。透過使用 SSIS,從臨時資料表載入至解決方案資料表,可以輕鬆地將來源資料表中的欄對應至目的資料表中的欄。SSIS 提供一組適用於 ETL 的強而有力功能,而且鼓勵讀取者進一步閱讀此主題:白皮書:SQL Server 2008 Integration Services 簡介 (可能為英文網頁)。
提示
執行 ETL 時,將 SQL 復原模式轉換為簡單。這樣會減少資料庫上不必要記錄的工作負荷,進而改善效能。
資料匯出
在大部分案例中,一般是在規劃程序完成之後進行,並且必須收集和處理結果,以匯回持續保留資料的來源系統,而這些資料可用於產生報表需求。
在解決方案中,因為資料是以一般化方式儲存在事實資料表中,所以準備進行匯出的資料只需要與維度資料表進行部分簡單結合。
不過,如果想要匯出的資料根本不存在於事實資料表中,而是只在 Cube 上進行計算時才存在,則資料匯出可能會變得稍微複雜。要如何克服此情況?答案是對 OLAP Cube 使用臨機操作分散式查詢 (如需詳細資訊,請參閱<為 BI 規劃解決方案與案例規劃模型及報告指南>)。
安全性和角色
安全性應該透過安全性角色定義在 SSAS 資料庫上。最好是讓安全性儘可能簡單,以獲得最佳效能。
最高安全性層級是資料庫安全性,因此建議每個需要存取資料模型的 IW 至少具有資料庫的「讀取定義」。
第二個最大的安全性層級是定義在 Cube 上,而這控制個別 Cube 具有唯讀或讀/寫功能或無法存取。
下一個安全性層級是定義在維度上。您可以選擇顯示或隱藏維度的特定成員。建議您在維度安全性停止,以從 SQL Server Analysis Services 獲取最佳效能。
如果您將安全性定義為最低存取層級,則其為儲存格層級。如果嚴格限制任何已定義儲存格層級安全性之使用者查詢的快取邏輯,則會嚴重影響效能。
您可以使用 Microsoft SQL Server Business Intelligence Development Studio (BIDS),在 SQL Server Analysis Services 資料庫上建立安全性角色。
請一定要注意 BIDS 可以執行定義安全性的高度複雜設定,而且可能需要較深入的技術專門知識,管理員才能進行設定和維護。不過,這可能是定義安全性的不錯自訂領域,其具有結構化試算表或來自 SharePoint 的已連結資料表,之後可以提供給轉譯模組,最後據此更新 OLAP 安全性。
複雜安全性
在標準 SQL Server Analysis Services 角色不足以涵蓋所有現有複雜關聯的情況下,也可以設定 SQL Server 2008 Analysis Services 的動態安全性。在下列情況下會發生此情況:
每個 IW 都需要存取一組特定維度成員
維度式安全性需求中會有一些重疊,即會有多個指派給不同 IW 的唯一維度成員組合。
See Also
Concepts
BI 規劃解決方案與案例中的基本規劃案例
為 BI 規劃解決方案與案例規劃資料超市
在 BI 規劃解決方案與案例中規劃建立模型概念
在 BI 規劃解決方案與案例中建立回寫的 Cube 模型
BI 規劃解決方案與案例中的效能考量與方法
使用 BI 規劃解決方案與案例中的 Excel PowerPivot 建立 Cube 模型
為 BI 規劃解決方案與案例建立報表與格式
為 BI 規劃解決方案與案例提交計劃資料
BI 規劃解決方案與案例的工作流程動作、工作流程圖、以及 SharePoint 工作流程設定
BI 規劃解決方案與案例的稽核追蹤
管理 BI 規劃解決方案與案例
BI 規劃解決方案與案例的計算
BI 規劃解決方案與案例的其他規劃功能
BI 規劃解決方案與案例的移轉
維護 BI 規劃解決方案與案例
BI 規劃解決方案與案例之公司到子公司的管理
為 BI 規劃解決方案與案例規劃模型及報告指南
為 BI 規劃解決方案與案例建立規劃功能指南
BI 規劃解決方案與案例的規劃和預算計算範例