Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
a Best Practices

a Best Practices

Ratings: (0)|Views: 110 |Likes:
Published by api-3702057

More info:

Published by: api-3702057 on Oct 14, 2008
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less





Best Practices
The following lists some performance considerations
when building mappings.
1.Filter Expressions - try to evaluate them in a port
expression. Try to create the filter (true/false) answer

inside a port expression upstream. Complex filter
expressions slow down the mapping. Again,
expressions/conditions operate fastest in an Expression
Object with an output port for the result. Turns out -
the longer the expression, or the more complex - the
more severe the speed degradation. Place the actual
expression (complex or not) in an EXPRESSION
OBJECT upstream from the filter. Compute a single
numerical flag: 1 for true, 0 for false as an output port.
Pump this in to the filter - you should see the maximum
performance ability with this configuration.

2.Remove all "DEFAULT" value expressions where
possible. Having a default value - even the

"ERROR(xxx)" command slows down the session. It
causes an unnecessary evaluation of values for every
data element in the map. The only time you want to use

"DEFAULT value is when you have to provide a default
value for a specific port. There is another method:
placing a variable with an IIF(xxxx, DEFAULT
VALUE,xxxx) condition within an expression. This
will always be faster (if assigned to an output port) than
a default value.

3.Variable Ports are "slower" than Output
Expressions. Whenever possible, use output

expressions instead of variable ports. The variables are
good for "static - and state driven" but do slow down
the processing time - as they are allocated/reallocated
each pass of a row through the expression transform.

4.Datatype conversion - perform it in a port
expression. Simply mapping a string to an integer, or

an integer to a string will perform the conversion,
however it will be slower than creating an output port
with an expression like: to_integer(xxxx) and mapping
an integer to an integer. It's because PMServer is left to
decide if the conversion can be done mid-stream which
seems to slow things down.

5.Unused Ports. Surprisingly, unused output ports have

no affect on performance. This is a good thing.
However in general it is good practice to remove any
unused ports in the mapping, including variables.

Unfortunately - there is no "quick" method for
identifying unused ports.
6.String Functions. String functions definitely have an

impact on performance. Particularly those that change
the length of a string (substring, ltrim, rtrim, etc.).
These functions slow the map down considerably, the
operations behind each string function are expensive
(de-allocate, and re-allocate memory within a READER
block in the session). String functions are a necessary
and important part of ETL, we do not recommend
removing their use completely, only try to limit them to
necessary operations. One of the ways to tune these is
to use "varchar/varchar2" data types in your database
sources, or to use delimited strings in source flat files
(as much as possible). This will help reduce the need
for "trimming" input. If your sources are in a database,
perform the LTRIM/RTRIM functions on the data
coming in from a database SQL statement, this will be
much faster than operationally performing it mid-

7.IIF Conditionals are costly. When possible - arrange

the logic to minimize the use of IIF conditionals. This is
not particular to Informatica. It is costly in ANY
programming language. It introduces "decisions" within
the tool; it also introduces multiple code paths across

Activity (16)

You've already reviewed this. Edit your review.
1 hundred reads
Naga Kiran liked this
srikanth95 liked this
dbensic liked this
gunners42 liked this
ilysimi liked this
padmapk liked this
arun_bharath liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->