2017-05-05 27 views
0

我面臨着OBIEE中複雜聯接的問題。任何幫助深表感謝!OBIEE 12.2.1.2 - 複雜聯接 - 物理/業務模型

在物理層中的連接的建立像這樣(在加入被標記紅):

昏暗---情況

和事實日

BETWEEN CAST(EVALUATE('TO_CHAR( %1,%2)」,朦朧有效起始, 'YYYYMMDD')AS DOUBLE)

AND

CAST(EVALUATE( 'TO_CHAR(%1,%2)',朦朧有效到, 'YYYYMMDD' )AS DOUBLE)

接近業務模型時,事實表的邏輯表源( - >內容 - >邏輯級)(儘管加入了bmm)不會找到新的維度,這會導致業務模型不一致。有時新維度也會顯示爲新的事實表。有趣的事實:這個複雜的連接已經在另一個維度上工作,它的構建完全一樣。在所有三層中我都沒有遇到過問題(一旦複雜的連接完成)。

想法和建議非常感謝!

回答

0

首先,這通常是一個糟糕的主意,因爲通過加入像這樣的「邏輯」,你基本上停用了優化器並在查詢的兩側強制進行全表掃描。編輯這個當然屬於Oracle DB。

其次,這是編寫連接條件的一種特殊方式。我用一個基於SamplApp的例子來做幾乎相同的邏輯轉換,但是沒有訴諸評估:https://www.slideshare.net/ChristianBerg8/50-shades-of-fail-kscope16(幻燈片12 + 13)

第三它是12.2.1.2並且是你的情況是提到的「最壞情況」之一在那個演示文稿;-)

+0

嗨基督教,感謝您的回答。但是,我仍然希望從數據庫實現每個時間戳的給定信息。有沒有其他的方式來整合這些時間戳?如果沒有,我可以考慮構建數據集市,只包括最新的信息/時間戳 - 呈現舊的時間戳無法用於查詢。 –

+0

可以理解。我只是想說明圍繞這個主題的考慮和影響。 基本上,你總是可以使用你現在擁有的東西來創建原型,並用上面描述的連接直接訪問你的數據源。然後運行一些壓力測試,看看事情是如何表現的,性能是否正常等。 至於爲什麼你會得到那些奇怪的結果 - 最好放棄連接並從頭開始重新創建。然後運行一些查詢並提取針對物理數據源發出的查詢。從僅維度開始,然後進行事實暗淡連接的結果集。 – Chris