Informatica性能调优(初级)(3)

发布时间:2021-06-06

Informatica性能调优(初级)

译文

本文所列的诸要点都是对INFORMATICA相关产品进行调优过程中所涉及到较宏观的问题。他们不是放之四海而皆准的教条,也不是最终的解决方案。其中一些已经条目(尤其是已经进行过调优)的建议可能结果会有所不同。适用于某些特定条目的技巧由于其所要解决问题的层次不同也会产生不同的调优结果。

对性能进行测试的时候,建议使用20万条记录左右的数据源进行处理。使用比之更大数据量的测试数据源,可能会产生因为表的分区、删除和重建索引、RAID数据条带化等问题数据库相关问题导致性能下降的问题,而如果使用的数据源的集合太小,统计出来的平均处理时间可能会因为数据库吞吐量、主机负荷以及网络流量等因素的影响而变得不稳定。20万条记录的集合一般是进行准确统计的比较理想的测试数据源。

首先试着用如下的方法对MAPPING进行调优,然后进行SESSION的优化,然后重复这一过程直到对调优的结果满意为止,或者无论怎么努力也无法取得更好的效果。如果经过调优,性能仍然无法令人满意,那么整个处理的体系结构就需要进行调整(或者说改变MAPPING所要完成的工作)。如果是这样,你可以联系我们(译者注:指原作者),我们可以对体系结构以及整个系统自底向上的进行调优。

始终要记住:要想得到一个理想的运行性能,尽量的要使得系统中的各个部分到达一种运行的平衡状态,包括数据库、硬件资源等,让他们做各自擅长的事情。不同的体系结构可能在速度以及优化的可能性等方面产生巨大的差异。

1、利用数据库(例如ORACLE/SYBASE/INFORMIX/DB2)进行大量的数据处理操作(例如排序、分组、汇总等)。换句话说,临时表(staging tables)会对并行操作有很大的益处。在并行设计中,那些简单的数学计算总是会减少你的执行时间。临时表有很多的优点,详情请参考关于方法的讨论。

2、尽可能的本地化。将所有的目标表放到ORACLE的同一个实例中(相同的SID),SYBASE也是一样。对任何处理都不要使用同义词(远程数据库连接),包括LOOKUP、存储过程、目标表、数据源、函数、权限等等。远程连接的使用会使得处理变得很慢。对于SYBASE的用户,数据库的远程使用会使性能产生很显著的降低。

3、尽可能的使目标表、存储过程、函数、视图以及序列都放到数据源的本地。同样,不要通过同义词进行连接。同义词(远程数据表)可能会使性能降低3倍甚至更多。

4、减少外部定义的模块。作为替代,在pre-processing/post-processing中使用PERL、SED、AWK、GREP等功能。调用外部的应用编程接口(API)本身就会降低性能(比如1/1/2000)。幸好将来INFORMATICA在这方面会有所改善。能展现性能问题的外部模块是正则表达式模块(regular expression module),环境是UNIX系统:Sun Solaris E450, 4 CPU's 2 GIGS RAM, Oracle 8i and INFORMATICA,不使用该模块的情况下,每秒可达1500行,而使用该模块速度变为486行/秒,测试的时候没有其他的SESSION在运行。(这是一个特定的测试用例,不代表所有的MAPPING运行效果)。

5、时刻谨记INFORMATICA建议每个SESSION使用1~1.5个CPU。在这种情况下,INFORMATICA可以和关系数据库引擎在同一台机器上配合的很好,但是从性能优化的角度来讲,INFORMATICA与其他的引擎(包括报表引擎、JAVA引擎、OLAP引擎、JAVA虚拟机等)就配合的不是很好。

6、减少基于数据库的序列。因为基于数据库的序列生成器需要一个wrapper的函数和过程调用。使用这样的过程会对使得性能降低3倍左右。而且这样的速度降低也不容易通过

Informatica性能调优(初级)(3).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219