2014-12-30 47 views
1

對於序列生成,我們可以使用序列生成器和Informatica變量端口。我只是好奇哪一個更適合在性能等方面使用。從Informatica文本中提取的任何內容都會很棒。序列發生器或變量端口

回答

0

除了性能,請記住代碼的可讀性和維護。序列發生器乍一看清晰可見。只有在編輯適當的表達式時,變量端口才會隱藏並可見。

+0

有條件增量和自動重啓能力是變量端口的一些功能。看起來這更像是個人選擇,因爲我們沒有Informatica文本中關於主要驅動因素的信息,例如性能。所以關閉這個。 –

+0

記住序列發生器的限制爲21億。 因此,如果您在Teradata中,或者如果您在Oracle中更好地查找目標表,則使用標識列獲取最大值(id),並通過將其與序列生成器之外的值相加來增加它。 –

1

如果你只是通過性能,我懷疑序列發生器會表現更好。

但是,您應該採用哪種方法在很大程度上取決於場景。例如,如果每次映射運行時需要從0(或任何固定數字)開始生成一個序列,那麼Sequence Generator將會很好。但是,例如,您需要在目標表中存在的最大數目後生成序號;在這種情況下,您可以在目標表上查找以獲取最大值並繼續在可變端口中增加它。

一個不能使用可變端口的例子是當您需要在多個映射中生成唯一的序列號時。但是,您可以爲此使用可重複使用的序列生成器。

同樣,如果您需要更大的靈活性來生成序列號,例如生成新的序列號,那麼只有在某個源列中出現唯一值時,纔會使用可變端口。

+0

先生,在簡單的情況下,像生成XML的PK或生成代理鍵哪個更好或兩者是相同的?在性能方面哪個更好或者哪個不重要? –

1

就我的想法而言,如果你只想要連續序列,你必須使用可變端口,它會給你更好的性能,而序列生成器會在遷移時產生很多問題,而如果你想要某種循環或者某些循環那麼特別的要求就應該是序列生成器。