在 Informatica Developer 映射中的查找中“--”是什么意思或做什么?

What does '--' mean or do in a lookup in Informatica Developer mapping?

在我们环境中的 Informatica Devloper 映射查找中,我经常在查找 sql 覆盖中看到“--”。它在脚本的末尾。通常我 'd interpret a '--' as 'comment out' of sql.

尽管一位同事说这与将应用某种排序这一事实有关。但我无法在网上找到有关它的更多信息。

任何人都可以告诉我查找 sql 末尾的 '--' 覆盖意思或在查找中做什么吗?或者在哪里可以找到更多相关信息?

我听说并可以确认当工作流为 运行 时,查找会自动将排序依据添加到查找中。

添加“--”时添加 sql 覆盖的末尾,不添加额外的顺序。

您的回答是正确的:默认情况下,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 子句。