Aggregator組件一般會下降性能,由於它們必須在處理數據以前對數據進行分組
Aggregator組件須要額外的內存來保存中間組結果
經過以下方式對Aggregator組件進行優化
簡化group by字段
1) group by避免使用複雜的表達式
2) group by字段越少越好
3) group by字段最好用數字,而不是字符或日期
對input進行排序
經過組件--> Properties --> 勾選Sorted Input選項對input數據進行排序
Sorted Input選項勾選時,Integration Service會假定認爲input已經被sorted,所以會減小聚合緩存的使用,並以此提升性能
當Integration Service讀取組的行時,它執行聚合計算。必要時,它將組信息存儲在內存中
Aggregator組件的input數據最好是已排好序的,能夠與Sorter組件,或者Source Qualifier組件的Number of Sorted Ports選項一塊兒使用
在具備多個分區的session中勾選Sorted Input選項能夠提升性能
使用增量聚合
若是source發生變更的數據小於target的一半,可以使用增量聚合
使用增量聚合可只將本次改動的部分同步至target,而不是將總體重新同步
也可在不產生系統分頁操做的狀況下,同構追加索引和數據緩存的方式將所有數據放入內存中處理
聚合以前進行過濾
在進行聚合操做以前,現將沒必要要的數據進行過濾,好比使用filter組件
限制port鏈接數量
限制鏈接的input/output port或output port的數量,以減小聚合時存儲在數據緩存中的數據量緩存