簡易 Oracle 資料同步問題, 使用 Materialized View

環境

公司使用的 ERP 系統是屬於單一家公司單一個 Schema,在大陸工廠因速度的問題所以把資料庫都建置在當地,所以就變成台灣一個資料庫,大陸兩個工廠各有一個資料庫。

 

需求

部門在前兩年開始自行開發電子簽核系統,初期只針對台灣公司導入及開發,今年度開始嘗試把大陸兩廠納入到支援的範圍,當然程式必須要針對新的公司別(主要是資料庫的緣故)做不同幅度的調整,但是最令人頭痛的是調整後的執行速度。

影響速度的因素有三點,第一是兩岸間的網路速度,當時我們僅利用 Untangle 的 OpenVPN 把兩邊串起來,速度當就沒有辦法保障,第二點是我們為了開發程式(當然還有其他用途)方便,跟大陸資料庫的連結是使用 DB Link 的方式進行,轉一手的速度自然比較慢,最後一點是Web Server 是放置在台灣,所以只要是由大陸連結都要看到由台灣傳過去的畫面,再加上資料的往返,這樣自然快不起來。

這樣導致簽核速度的低落,更慘的是簽核最後一關通常都是高階長官,而簽核的內容都必須回填 ERP 系統上某些欄位,執行速度上最差可以到30-45秒,開始測試時就被罵得半死,在不影響整個程式的邏輯上 (因為整個翻寫成本太大),只能靠資料的功能來加速整個過程。

Continue reading “簡易 Oracle 資料同步問題, 使用 Materialized View”