2010-08-11 65 views
-1

我在運行生產環境中的ETL Process時遇到了一個重要問題。當我的ETL正在運行時,OLAP服務器變得非常慢,我想這是因爲ETL正在更新事實表中的幾個現有行並添加新行。我試圖避免這樣的問題,即整個數據庫複製和ETL寫入DB1和從DB2讀取的OLAP服務器(複製的)。它根本不起作用。ETL性能問題

你能給我一些建議,指出我在正確的解決方案,以避免這個問題。

我正在使用SQL Server 2005. 8GB內存 Mondrian OLAP服務器到Jboss服務器。 8GB內存。 ETL每3小時運行一次,運行2小時。

我很感激任何幫助。

回答

2

讓ETL將它的進程運行到一個新表中,然後使用ALTER TABLE ... SWITCH PARTITION將新數據切換到事實表。見Transferring Data Efficiently by Using Partition Switching。我也會重溫ETL本身,因爲有一個可以調整ETL過程的import about 2TB/hour,你可以自己擠出更多的性能,我懷疑你每3個小時就會導入4TB ......

至於使用複製來緩解負載問題的想法,我只能說這一點:複製將始終添加到負載,因爲複製過程本身是相當昂貴。在發佈者上的每一次插入,更新和刪除都是對訂閱者的插入,更新或刪除,並且還有檢測發佈者變更,分發開銷和在訂閱者上應用更改等額外開銷......只會加起來,不要減去任何東西。