[go: up one dir, main page]

100% found this document useful (1 vote)
325 views21 pages

Performance Tuning: Identifying Performance Bottleneck Taking Corrective Actions

The first step in performance tuning is to identify the bottleneck, which can occur in the source, target, mapping, session, or system. You can identify bottlenecks by running test sessions, viewing performance details, and using monitoring tools. Target and source bottlenecks are identified by configuring sessions to write to flat files. Mapping bottlenecks are identified by adding filters before targets. Corrective actions include optimizing queries, datatypes, transformations, and increasing network packet sizes.

Uploaded by

Vamshi Krishna
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
325 views21 pages

Performance Tuning: Identifying Performance Bottleneck Taking Corrective Actions

The first step in performance tuning is to identify the bottleneck, which can occur in the source, target, mapping, session, or system. You can identify bottlenecks by running test sessions, viewing performance details, and using monitoring tools. Target and source bottlenecks are identified by configuring sessions to write to flat files. Mapping bottlenecks are identified by adding filters before targets. Corrective actions include optimizing queries, datatypes, transformations, and increasing network packet sizes.

Uploaded by

Vamshi Krishna
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 21

Performance Tuning

Identifying Performance Bottleneck


Taking Corrective Actions
Identifying Performance Bottleneck

The first step in performance tuning is to identify the performance


bottleneck. Performance bottlenecks can occur in the source and target
databases, the mapping, the session, and the system. Generally, you
should look for performance bottlenecks in the following order :

• Target
• Source
• Mapping
• Session
• System

You can identify performance bottlenecks by running test sessions,


viewing performance details, and using system monitoring tools.
Target Optimization
• Typically your targets would be :
• A) Database
• B) Flat File

• Database : If your target is a database, then configure session


properties to write to a flat file. If the session
performance increases significantly then the target
database is the bottleneck.
• Flat File : If your session already writes to a flat file target, you probably
do not have a target bottleneck. You can optimize session performance by
writing to a flat file target local to the Informatica Server
Database Target Bottleneck
• Typical Causes :

• A) Small check point intervals


• B) Small database network packet size
• C) Problems during heavy loading
operations
Database Target Optimization
• Perform following tasks to improve performance :

• A) Drop indexes and key constraints


• B) Increase checkpoint intervals
• C) Use bulk loading
• D) Use external loading
• E) Increase database network packet size
• F) Optimize Oracle target databases
Database Target Optimization
• Drop indexes and key constraints :
• When you define key constraints or indexes in target tables, you slow the loading of
data to those tables. To improve performance, drop indexes and key constraints
before running your session. You can rebuild those indexes and key constraints after
the session completes. (Use pre-session and post-session property for this)

• Increase checkpoint intervals :


• The Informatica Server performance slows each time it waits for the database to
perform a checkpoint. To increase performance, consider increasing the database
checkpoint interval. When you increase the database checkpoint interval, you
increase the likelihood that the database performs checkpoints as necessary, when

the size of the database log file reaches its limit


Database Target Optimization
• Use bulk loading :
You can use bulk loading to improve the performance of a session that inserts a large
amount of data to a Sybase, Oracle, or Microsoft SQL Server database. Configure
bulk loading on the Properties settings of the Targets tab.

When bulk loading, the Informatica Server bypasses the database log, which speeds
performance. Without writing to the database log, however, the target database
cannot perform rollback. As a result, you may not be able to perform recovery.
Therefore, you must weigh the importance of improved session performance against
the ability to recover an incomplete session.
Database Target Optimization
• Use external loading :
A) DB2 : If you have a DB2 EE or DB2 EEE target database, you can use the DB2
EE or DB2 EEE external loaders to bulk load target files.
B) Teradata : If you have a Teradata target database, you can use the Teradata
external loader utility to bulk load target files.
C) Oracle : If your target database runs on Oracle, you can use the Oracle
SQL*Loader utility to bulk load target files. When you load data to an
Oracle database using a pipeline with multiple partitions, you can increase
performance if you create the Oracle target table with the same number of
partitions you use for the pipeline.
D) Sybase : If your target database runs on Sybase IQ, you can use the Sybase IQ
external loader utility to bulk load target files
Database Target Optimization
• Increase database network packet size :

You can increase the network packet size in the Informatica Workflow Manager to
reduce target bottleneck. If you increase the network packet size in the Informatica
Server configuration, you also need to configure the database server network
memory to accept larger packet sizes.
Database Target Optimization
Optimize Oracle target databases :
Take the help of Oracle DBA.
Identifying Source Bottlenecks
Sources can be :

A) Flat File : If your session reads from a flat file source, you probably do not have a
source bottleneck. You can improve session performance by setting the
number of bytes the Informatica Server reads per line if you read from a
flat file source.
B) Relational Source : If the session reads from relational source, you can use a filter
transformation, a read test mapping, or a database query to
identify source bottlenecks.
Identifying Source Bottlenecks
Relational Source :
A) Using a Filter Transformation : Add a filter transformation in the mapping after each
source qualifier. Set the filter condition to false so
that no data is processed past the filter
transformation. If the time it takes to run the new
session remains about the same, then you have a
source bottleneck.
B) Using a Read Test Session :
1) Make a copy of the original mapping.
2) In the copied mapping, keep only the sources,
source qualifiers, and any custom joins or queries.
3) Remove all transformations.
4) Connect the source qualifiers to a file target.

Use the read test mapping in a test session. If the test session
performance is similar to the original session, you have a source
bottleneck.
C) Using a Database Query : Check execution path of read query against database using
utilities like explain plan to identify source bottleneck.
Optimizing Source Database
Relational Source :
A) Optimize the query : Check the execution path of the query (using explain plan) and
take necessary optimization steps like creation of index and giving
optimizing hints.
B) Use conditional filters : Instead of using filters on non-indexed table columns (on database
side), use Informatica’s filter transformation. You can test your session
with both the database filter and the PowerCenter/PowerMart filter to
determine which method improves performance.
C) Increase database network packet size :
You can improve the performance of a source database by increasing
the
network packet size, allowing larger packets of data to cross the
network
at one time. To do this you must complete the following tasks:
• Increase the database server network packet size.
• Change the packet size in the Workflow Manager database
connection to reflect the database server packet size.
Identifying Mapping Bottlenecks
After identifying that the bottleneck is neither source nor target, introduce a filter just
before each of the targets and set the filter property to false to ensure that no rows
are loaded. If the mapping is still taking almost the same time as earlier then the
mapping is the bottleneck for performance.

You can also perform the following tasks to optimize the mapping:
• Configure single-pass reading.
• Optimize datatype conversions.
• Eliminate transformation errors.
• Optimize transformations.
• Optimize expressions.
Optimizing the Mapping
Configuring Single-Pass Reading :
Single-pass reading allows you to populate multiple targets with one source qualifier.

Figure 22-1. Single-Pass Reading


Optimizing the Mapping
• Optimizing Datatype Conversions :
Forcing the Informatica Server to make unnecessary datatype conversions slows
performance. For example, if your mapping moves data from an Integer column to a
Decimal column, then back to an Integer column, the unnecessary datatype
conversion slows performance. Where possible, eliminate unnecessary datatype
conversions from mappings.
Optimizing the Mapping
• Optimizing Aggregate Transformation
:
1) Use sorted input (this requires data in sorted manner
from input side)
2) Use incremental aggregation (if the changes
captured from source changes less
than half the target)
Optimizing the Mapping
• Optimizing Lookup Transformations :
1) Cache the lookup table (preferably if it needs less than 300MB space).
2) Indexing the lookup table.
3) Shared cache : You can share the lookup cache between multiple transformations
(if unnamed within same mapping and named across mappings)
4) Persistent cache : If you want to save and reuse the cache files, you can configure
the transformation to use a persistent cache. Use this feature when you know the
lookup table does not change between session runs.

• Optimizing Filter/Router Transformations :


1) If possible eliminate filter transformation by giving source qualifier filter.
2) If rejected rows are not required then update strategy should be preceded with
filter/router.
Optimizing the Mapping
• Optimizing Joiner Transformations :
1) Use smaller table as master table.
2) Normal joins are faster than outer joins.

• Optimizing Filter/Router Transformations :


1) If possible eliminate filter transformation by giving source qualifier filter.
2) If rejected rows are not required then update strategy should be
preceded with
filter/router.
Optimizing the Session
1) Partitioning
2) Increase DTM Buffer Pool Size (this should be the last option)
3) If you are manipulating unusually large rows of data, you can increase the buffer block
size to improve performance. If the session mapping contains a large number of
sources or targets, you might need to decrease the buffer block size.
4) Increase the cache size
5) Increase the commit interval
Optimizing the System
1) Improve network speed
2) Use multiple PowerCenter Servers

You might also like