我正在尝试获取具有 280 个字段的数据集的行数,而不会影响性能。寻找最佳的执行方式。
3 回答
避免性能问题的更好选择是使用排序器转换并对列进行排序并将管道传递给聚合器转换。在聚合器转换中,请检查选项排序输入。
如果您的源是数据库,则索引表中所需的条件列,并在需要时对表进行分区。
对于您的解决方案,我想到了 2 个选项:
使用 Aggregator(记得使用预定义的 order by 来提高下一个 trans 的性能),SQ > Aggregator > Target。在聚合器中使用 sum() 和/或 count() 函数添加新端口。记得选择要分组的列
看看这个例子: https ://www.guru99.com/aggregator-transformation-informatica.html
使用源限定符查询覆盖。使用来自数据库的传统 select count/sum 和 group by - SQ > Target。
顺便一提。Informatica 的性能非常好,超过了您需要查看正在处理的记录数的列。最佳实践总是比 Infa 应用程序更强调数据源/数据库。
问候,
- 胡安
如果您只需要计算行数,请使用聚合器。这就是它的用途。但是,这将创建缓存 - 要限制其大小,请使用单个端口。
为避免缓存,您可以在表达式中使用变量并增加它。然而,这会给你一个额外的列,所有行都被编号,而不仅仅是一个值。您仍然需要聚合它。在这里,可以使用没有函数的聚合器只返回最后一个值。