2012-02-28 51 views
-1

我有一個水晶報表,它在Oracle中調用一個函數。這個函數使用一個select來選擇一個視圖作爲它的一個表。此視圖使用多個鏈接到其他數據庫(該視圖是多個查詢的聯合)。每當這個函數運行時,它就好像運行查詢的查詢一樣,並且每個創建視圖的鏈接似乎都進入了enq-DX爭用。函數導致enq- DX爭用

這與這個已知問題有關嗎? http://surachartopun.com/2008/12/dbink-hangs-enq-dx-contention.html

我想問的原因是,我的研究似乎表明,鏈接到甲骨文的不同versiions時,但所有我使用的那些的10.2

+0

什麼是實際症狀?報告是否掛起或拋出錯誤消息? – kevinsky 2012-02-28 18:06:22

+0

crystal hangs ....然後如果我進入oracle網格可以看到鏈接進程在enq-DX爭用。該函數是一個pragma autonomous_transaction; – user1023993 2012-02-28 18:25:34

+0

您的描述只是以某種方式告訴部分發生了什麼事情:在描述中您談論了遠程選擇,但是在您談論自治事務的評論中?你能給一個完整的描述嗎? – steve 2012-02-29 03:08:56

回答

0

擁有這種方法工作過這個問題應該只發生?這聽起來不是一個很好的做事方式。我可以想象這個函數會在處理每一行時導致大量的往返行程。

這樣做的一些其他方法包括儘可能靠近最大的數據表放置函數,並在該數據庫上保留處理。只返回你需要的功能。

您可以在每天早上從查詢中創建一個代表所需數據集的表格,並使用Crystal直接查詢。只需使用存儲過程或高級隊列刷新數據即可。

其中一個數據庫源的刷新的物化視圖將是另一種方法。

編輯:是的,使用數據庫鏈接可能是資源密集型的,並導致你遇到的那種問題。這有沒有工作過或有新的需求,你需要一個解決方案。 如果它用來改變什麼工作? 如果這是新的,我謙虛地建議一個不同的方法,因爲我已經建議。

+0

我可以運行單個函數作爲sql語句沒有問題(問題只出現在運行時一個函數),我可以運行該函數,當我不包括視圖作爲函數內的選擇的一部分(我鬆散的部分我的標準這樣做)。我認爲物化視圖會起作用。看起來奇怪的是,這些作品的工作,但不是整體。我也可以按照原樣運行函數,如果我在沒有鏈接的情況下運行它(這是在dev中設置而不是生產)。只要不涉及鏈接,該功能就會非常快速地運行,並在它們處於即時狀態時立即掛起 – user1023993 2012-02-29 13:51:17

相關問題