2012-04-10 20 views
1

我有一個主事實表,其中包含約10個外鍵。現在我有其他4個事實表,它們具有連接到主事實表的N:1關係。 問題是,我是否應該將所有外鍵複製到這4個事實表中,還是應該在SSAS多維數據集處理期間將運行時連接複製到主事實表中?我是否應該將主事實表中的所有外鍵複製到其他相關表中?

有什麼優點和缺點?

+0

你可以舉個例子。確定分析 – Diego 2012-04-11 21:53:40

+0

會更容易。主事實表是 FactTable(PKEY,FKey1,FKey2,FKey3,FKey4,值) 的相關事實表等 FactTable1(PKEY,FactTable.PKey,ErrorCounter) FactTable2(PKEY,FactTable.PKey,EventCounter) 問題是,我應該改變FactTable1或FactTable2像這樣的結構: FactTable1(PKey,FactTable.PKey,FactTable.FKey1,FactTable.FKey2,FactTable.FKey3,FactTable.FKey4,ErrorCounter) – 2012-04-13 06:25:16

+0

如何能有4個事實表與另一個事實有多對一的關係?根據定義,事實表按照通用維度相關。除非在非常有限的情況下,否則不要將事實關鍵字放在另一個事實表上。 – 2012-04-17 19:28:03

回答

0

似乎我不能在評論中添加換行符。所以我在這裏留下評論。
當然。主事實表是
FactTable(PKEY,FKey1,FKey2,FKey3,FKey4,值)
的相關事實表等
FactTable1(PKEY,FactTable.PKey,ErrorCounter)
FactTable2(PKEY,FactTable.PKey, EventCounter)

,問題是,我應該改變FactTable1或FactTable2構建是這樣的:
FactTable1(PKEY,FactTable.PKey,FactTable.FKey1,FactTable.FKey2,FactTable.FKey3,FactTable.FKey4,ErrorCounter)

0

爲什麼要把它放在一個事實表中?它們如何作爲度量/組與SSAS相關聯。

您現在是否遇到性能問題?如果多維數據集在獨立表中處理多餘的時間需要5秒鐘,並且需要5分鐘的ETL將其全部加載到一個表中,那麼保持原樣就更爲明智了。如果這是另一種方式,也許將它全部放在一張事實表中是很好的。

如何使用Dim和Fact之間的關係在SSAS中建立多維數據集的模型並不一定與您的表與關係數據庫中的eachother相關聯。

+0

在我的多維數據集模型中,所有的事實都會與所有昏暗的模型有規律的關係。所以在我當前的關係數據庫模式中,我爲每個相關的事實表創建一個視圖,並加入主表以獲取這些外鍵。我直接在我的SSAS DSV中綁定這些視圖。我關心的是性能,多維數據集進程和ETL。在ETL期間將所有這些密鑰放入所有相關表中是否明智?我做了一些簡單的測試,顯示沒有太大的區別。 – 2012-04-16 02:24:29

0

如果性能是您的目標並且空間不是問題,您將從子表事實數據庫中報告而不引用父表,那麼確定將FK添加到其他FACT表中,不會丟失任何數據並且可能獲得一點的速度。

但是,如果你總是包含父事實表查詢相關的表時,那麼就沒有一點(因爲你總是在做的加入,並承擔這樣做的成本)

相關問題