informatica优化

近来由于工作需要,使用informatica powercenter,对powercenter优化有几点浅微见解:
1、为平衡性能,在数据库可接受范围内尽量在数据库中进行数据排序,即在source qualifier里sql语句中进行排序;
2、抽取数据时只抽取需要字段,尽量减少输入输出端口,在其他组件也类似,一旦字段不需要输出,取消输出端口的选中状态;
3、数据要尽量早过滤,减少mapping过程中携带的数据量;
4、若遇到f(x)组件,看表达式变换后数据量是变大还是变小,若变小,尽量早f(x);
5、若mapping中需要管理多个源,则可优先少量源进行最初关联,然后再关联大表,以减少过程中携带数据,但是几个大表关联后过滤重复数据之类的要先大表关联进行过滤;
6、多表关联时,以大表为detail,小表为master(表的大小以实际数据量为准),因为master需要放在内存中的。然后根据实际业务需求选择关联类型(normal/detail outer/master outer/full join)。
7、对于需要join和union的mapping,尽量先union,然后join,为了减少过程中携带的数据量;
8、尽可能减少agg组件的使用次数,因为非常耗费性能。
9、join组件、agg组件中若数据排过序可提高性能,故一般前面跟sort组件,根据连接条件或者分组字段进行排序,排序顺序应严格按照连接条件顺序或分组字段顺序进行;并且勾选join或者agg的sort input选项。
10、若排序数据量较大时,可以适当增加sort与session的缓存大小,具体可根据session log的提示进行调整。
11、据说,使用filter组件时,若过滤条件复杂可以先使用expression组件生成类似条件字段,然后在filter组件使用该字段进行过滤可大大提高性能,(但没试过。。。)
12、分区是处理大数量的好选择(目前没有使用过。。。。)
13 expression  中符号比表达式性能高

    expression 中有变量端口,可生成中间量,重复使用

    expression中尽量少嵌套,可用高级函数代替

14、尽量避免类型转换

15high precision is expensive


随时更新中,并希望各位大神指正其中错误之处。。。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28690368/viewspace-766423/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28690368/viewspace-766423/

你可能感兴趣的:(informatica优化)