0

我們有37個Informatica會話,其中大部分會話平均有大約25個表。很少有會議有1個表作爲來源和目標。我們的來源是Oracle,目標是Greenplum數據庫。我們使用安裝在Oracle上的Powerexchange 10.1來獲取我們的Changed記錄。Informatica CDC映射:組來源正在慢慢提取記錄

我們注意到,對於擁有更多表的會話來說,獲取數據和更新目標需要更多時間。添加更多表是否會延遲處理?在這種情況下,如何調整以儘可能快地獲取記錄?

回答

0

我們運行19個CDC映射,每個映射在17到90個表中,最近在性能上有所突破。表格的數量對我們來說不是最重要的限制因素,電力中心和電力交換是。我們的源代碼是z/OS上的DB2,但這可能並不重要... 這就是我們所做的:

1)我們將DTM緩衝區大小增加到256KB,並將DTM緩衝區大小增加到1GB或更多,「複雜」映射需要許多緩衝區塊。

2)我們改變連接屬性: - 實時沖洗延遲= 86000(最大設定) - 提交大小在會話設定非常高(以允許上述的設定到是決定性的因素) - OUW 3)我們將會話屬性'恢復策略'設置爲'失敗任務並繼續工作流程',並且將會話屬性'恢復策略'設置爲'失敗任務並繼續工作流程',並且實施我們自己的解決方案,每次開始工作流程時從頭開始創建「重新啓動令牌文件」。 只有稍微偏離主題:我們實現這個的方式是用一個只包含一行的額外表(我們稱之爲SYNC表)。該行通過非常可靠的預定過程(小型CICS程序)每10分鐘在源代碼中更新一次。此表的內容每個工作流寫入目標數據庫一次,並在映射中添加一個額外的列,其中包含$$ PMWorkflowName的內容。除了workflowname列之外,還將兩個DTL__Restart1和* 2列寫入目標。 在工作流啓動期間,我們在實際的CDC會話之前運行一個小的可重用會話,該會話從目標端的SYNC表中讀取當前工作流的記錄,並從頭開始創建RESTART文件。 [請注意,您最終會在目標中使用最多10分鐘(從工作流程開始時間開始)的dublicates。我們接受並正在將它聚集在所有從這些圖中讀取的映射中]

嘗試用這些組合來修補它們,並告訴你遇到了什麼。現在,我們在每個映射10至100萬行的10分鐘間隔內具有最大吞吐量。我們的目標是Netezza(來自IBM的PDA)

我還可以告訴你的另外一件事: 每次觸發一次提交(每次以上設置爲86秒),Power Center將清空其所有寫入器緩衝區,表在一個大的承諾範圍內。如果其中任何一個被另一個進程鎖定,則最終可能會在寫入器端產生大量的級聯鎖定,這會使CDC看起來很慢。

+0

對於您提到的第三點,您是如何實現重新啓動令牌文件創建的?是否使用來自上次檢查點的簡歷在此創建任何問題? – Surendar

+0

我剛剛編輯了答案,儘管這是一個非常簡短的解釋,但我希望你能跟着我。這就是說:你應該嘗試測量在這個全面生產中實施它之前,你將從這個改變和所有其他建議的改變中獲得多少速度。其他兩個變化更容易做到,並且可能具有相同的效果,所以從這裏開始:) –

+0

嗨Lars謝謝你的回覆,我會執行你提供的建議並讓你知道結果。 – Surendar