Informatica 中查找转换的性能问题

Performance issue with lookup transformation in Informatica

我正在使用查找转换来比较来自不同数据库的源数据和目标数据,我们正在使用 Source_System_id 列进行比较。由于 Source_System_id 的此值是使用 TO_CHAR(PERSON_KEY) || 得出的'~' || SOURCE_CD || '~' || TYPE_CD 在目标中,在查找中我正在编写一个查找覆盖查询来复制相同的。目标中的 Source_System_id 列已编入索引并且它是主键,但是当我尝试使用查找将其与源 table 进行比较时,性能非常慢并且构建缓存需要时间任何人都可以建议如何提高性能。

您似乎有很多数据要缓存。所以,这就是我的建议。

  1. 从查找中删除所有不需要的端口。从 LKP SQL 覆盖中也删除不需要的 ORDER BY 子句并仅保留密钥。

  2. 首先从会话日志中收集 LKP SQL 并在数据库中 运行 并查看它是否在预期时间内返回查找中的所有数据。如果这个 SQL 需要时间,那么 SQL 就有问题。并尝试调整它。
    2.1 - 您可以添加一些日期过滤器来限制缓存数据。
    2.2 - 您还可以应用一些其他类型的过滤器来限制缓存数据。
    2.3 - 加入目标或其他一些 table 以限制数据。
    2.4 - 如果以上选项不可能,请创建一个新映射以将数据暂存到目标中的 table 中,在主映射之前只有 source_id 和 运行。然后加入那个小阶段 table 和 lookup main table 来限制数据。 1.5 - 如果以上都失败或无法实现,您可以添加一些索引或提示以使 SQL 更快。

  3. 不要在查找查询中连接(我认为你没有这样做,但仍然在说)。

  4. 如果你不能达到以上几点或者它们没有帮助,那么你可以增加查找缓冲区大小的内存。

  5. 增加并发查找的数量有时会有所帮助。