2016-09-01 42 views
1

在我們的環境中進行Informatica Devloper映射的查找時,我經常在Lookup sql覆蓋中看到' - '。它在腳本的末尾。通常我會將' - '解釋爲sql的「註釋掉」。「 - 」在Informatica Developer映射中查找的含義是什麼?

雖然一位同事說它與某種排序將被應用的事實有關。但我無法在網上找到關於它的更多信息。

任何人都可以告訴我什麼' - '在查找SQL覆蓋意味着什麼或在查找嗎?或者在哪裏可以找到更多關於它的信息?

回答

2

您的回答是正確的:Informatica默認將ORDER BY語句添加到SQL覆蓋。聲明結尾處的' - '將禁用它。但是:

  • Informatica故意這樣做。它在那裏使緩存構建更快 - 緩存被排序以改善緩存讀取。應該反映港口的Lookup Transformation
  • Condition選項卡上提到如果ORDER BY被禁用,你可能會看到下面的消息在會話日誌表示可能性能下降的順序:

    Message: Warning: Unsorted input found when building the cache for the Lookup transformation [lkp_name]. ...

一般應該避免這種情況。 (呃 - 應該避免SQL覆蓋,原因很多,但這是一個不同的故事)。但是在某些特殊情況下,這可能是需要的並且是完全合理的。

例子:

Condition定義上做端口匹配的A,B,C - 但行不是唯一的,我們需要得到使用updatedOn最新一行。在這種情況下,我們可能會使用 Use First Value作爲Lookup policy on multiple match屬性。爲確保最近更新的行將首先包含我們自己的ORDER BY A, B, C, updatedOn desc --條款。這將確保數據按照我們需要的條件列進行排序,最近的行將排在第一位。並且--需要在那裏以防止Informatica將添加的第二條ORDER BY條款。

0

我聽說並且可以確認查詢自動在工作流程運行時自動添加查找順序。

當添加' - '時,添加sql覆蓋的結尾,不添加任何addiditional命令。