INFORMATICA 的调优之 INFORMATICA SERVER TUNING
INFORMATICA SERVER的调优我认为主要从两个级别来做,一个是MAPPING级别,一个是SESSION级别。
对于MAPPING级别的调优:
一 对MAPPING数据流向的优化:
1 控制源头过来的数据内容,根据设计需求,不需要过来的数据尽量不加载。当然这个主要在SOURCE QUALIFIER 里用SQL过滤好些。
2 TRANSFERMATION组件的顺序也是很有讲究的,如果是EDW中需要STAG表的话,从源过来的第一层一般就直接加载。在第二层一般是计算聚合过程,这个过程的MAPPING也是最消耗资源的。因此根据数据量和业务逻辑,来合理设计MAPPING数据流,首先对源和目标的数据和结构做以评估,如果需要可以对源表在抽取时提示索引来加快读取性能,对目标表加载时删除索引,加载后在重建索引来加快加载进程。流程上要在聚合,查找组件前使用排序操作(排序字段能用数字的列的就不要用字符列,规范数据,提高性能。常用的查找组件需要设置CACHE,主表等来提高性能。
二对MAPPING层次的优化
如果一个MAPPING的数据流向过于冗长,最后能采取分割的方式,化大为小,这也是提高性能的有效方式之一。
对SESSSION级别的调优:
SESSION 级别的可以从数据量和数据流来调整,对数据行大的SESSION CHECKPOINT的COMMIT ROWS可以提高。INFORMATICASERVER中SESSION对应的CACHE设置,日志模式级别选择低层的可以增加性能,根据需要可以选择GRID,PARTITION。
另外,由于INFORMATICA是运行在SERVER上的,也需要对SERVER的CPU,IO,MEMEORY做以统计,如果确实也有瓶颈,也需要对SERVER级的调优。主要还是根据自己的环境实际有一个基本的确定问题的思路,如何确定是源的问题,INFASERVER或某一组件的问题,目标的问题。确定好了,分而治之。