IDENTIFICATION OF BOTTLENECKS
Performance of
Informatica is dependant on the performance of its several components like
database, network, transformations, mappings, sessions etc. To tune the
performance of Informatica, we have to identify the bottleneck first.
Bottleneck may be
present in source, target, transformations, mapping, session,database or
network. It is best to identify performance issue in components in the order
source, target, transformations, mapping and session. After identifying the
bottleneck, apply the tuning mechanisms in whichever way they are applicable to
the project.
Identify
bottleneck in Source
If source is a
relational table, put a filter transformation in the mapping, just after source
qualifier; make the condition of filter to FALSE. So all records will be
filtered off and none will proceed to other parts of the mapping.In original
case, without the test filter, total time taken is as follows:-
Total Time = time
taken by (source + transformations + target load)
Now because of
filter, Total Time = time taken by source
So if source was
fine, then in the latter case, session should take less time. Still if the
session takes near equal time as former case, then there is a source
bottleneck.
Identify
bottleneck in Target
If the target is a
relational table, then substitute it with a flat file and run the session. If
the time taken now is very much less than the time taken for the session to
load to table, then the target table is the bottleneck.
Identify
bottleneck in Transformation
Remove the transformation
from the mapping and run it. Note the time taken.Then put the transformation
back and run the mapping again. If the time taken now is significantly more
than previous time, then the transformation is the bottleneck.
But removal of
transformation for testing can be a pain for the developer since that might
require further changes for the session to get into the ‘working mode’.
So we can put filter
with the FALSE condition just after the transformation and run the session. If
the session run takes equal time with and without this test filter,then
transformation is the bottleneck.
Identify
bottleneck in sessions
We can use the
session log to identify whether the source, target or transformations are the
performance bottleneck. Session logs contain thread summary records like the
following:-
MASTER>
PETL_24018 Thread [READER_1_1_1] created for the read stage of partition point
[SQ_test_all_text_data] has completed: Total Run Time =[11.703201] secs, Total
Idle Time = [9.560945] secs, Busy Percentage =[18.304876].
MASTER>
PETL_24019 Thread [TRANSF_1_1_1_1] created for the transformation stage of
partition point [SQ_test_all_text_data] has completed: Total Run Time =
[11.764368] secs, Total Idle Time = [0.000000] secs, Busy Percentage =
[100.000000].
If busy percentage is
100, then that part is the bottleneck.
Basically we have to
rely on thread statistics to identify the cause of performance issues. Once the
‘Collect Performance Data’ option (In session ‘Properties’ tab) is enabled, all
the performance related information would appear in the log created by the
session.
No comments:
Post a Comment
Thank you :
- kareem