2012-10-24 42 views
3

我有一套在SQL Server中設置的視圖,它完全輸出我希望包含在SQL Server Analysis Services多維數據集中的結果,包括計算多個維度(例如使用DATEDIFF的年齡,使用業務季度DATENAME等)。我想知道的是將這些視圖用作多維數據集的數據源是否有意義,或者是否應該使用基礎表來重現SSAS中的邏輯。去兩條路線有什麼影響?SSAS - 我應該使用視圖還是基礎表?

我的擔憂是:

  • 數據集是巨大的,但我們需要快速訪問的結果,所以我想有儘可能多的在意見做了SSAS數據中堅持的計算倉庫
  • 同樣,因爲數據集是巨大的我想任何立方體的重新計算是一個快地

回答

7

許多專家實際上建議使用在SSAS數據源視圖的意見。約翰韋爾奇(實務工作,微軟MVP,分析服務大師)談到了他如何在今年的SQL Rally Dallas中更喜歡在DSV中使用視圖。原因在於它在多維數據集和物理表之間創建了一個圖層。

計算視圖中的列將在多維數據集處理期間花費額外的時間和資源。如果處理時間正確,則將計算留在視圖中。如果這是個問題,您可以隨時將一個持久計算的列直接添加到事實表中,以便在事實表的插入/更新過程中完成計算。這樣做的缺點就是你必須物理存儲事實表中的列。其優點是每次處理多維數據集時都不必計算它們。這些是您需要衡量以決定走哪條路的權衡。

只要確保您將源查詢調整爲儘可能高效。對於DSV來說,視圖很好。

+0

「在立方體和物理表之間創建一個圖層」。誠然,這是如此重要。 +1 – Diego

3

意見,總是!在DSV上使用表格的唯一好處是它會自動映射您的密鑰:)這爲您節省了5分鐘的開發時間哈哈。

另外,通過「使用底層表來重現SSAS中的邏輯」,您的意思是在您的SSAS DSV上創建計算列?這也是一個選項,但我寧願將計算添加到視圖中,因爲如果我必須提取它們,重新部署視圖比重新部署完整多維數據集要容易得多(並且更容易失敗)。

+1

如何在視圖之間建立聯繫以創建多維數據集?我的理解是沒有PK,FK之間的關係關係,有沒有辦法創建事實表? – OPK

+1

必須通過將數據列從事實視圖拖到維度視圖中,手動將關係添加到數據源視圖中。 – RollTide

相關問題