Interview Questions Harsha
Interview Questions Harsha
4) Incremental aggregation?
In the Session property tag there is an option for performing incremental aggregation. When the
Informatica server performs incremental aggregation , it passes new source data through the
mapping and uses historical cache (index and data cache) data to perform new aggregation
calculations incrementally.
A: Constraint based loading can be used when you have multiple targets in the mapping and the target
tables have a PK-FK relationship in the database. It can be set in the session properties. You have to set
the Source “Treat Rows as: INSERT” and check the box “Constraint based load ordering” in Advanced
Tab.
Q: What is Slowly Changing Dimention and what are the types of Slowly changing Dimension?
Type 1 Dimension mapping. Loads a slowly changing dimension table by inserting new
dimensions and overwriting existing dimensions. Use this mapping when you do not want a history of
previous dimension data.
Type 2 Dimension/Flag Current mapping. Loads a slowly changing dimension table by inserting new
and changed dimensions using a flag(ACTIVE/INACTIVE) to mark current dimension data and an
incremented primary key to track changes. Use this mapping when you want to keep a full history of
dimension data, tracking the progression of changes while flagging only the current dimension.
Type 3 Dimension mapping. Loads a slowly changing dimension table by inserting new dimensions
and updating values in existing dimensions. Use this mapping when you want to keep the current
and previous dimension values in your dimension table.
Mapping Parameters : A mapping parameter represents a constant value that you can define before
running a session. A mapping parameter retains the same value throughout the entire session
Mapping Variables : Unlike a mapping parameter, a mapping variable represents a value that can
change through the session. The Informatica Server saves the value of a mapping variable to the
repository at the end of each successful session run and uses that value the next time you run the
session.
If the session performance increases significantly when you write to a flat file, you have a target
bottleneck.
Solution :
Drop or Disable index or constraints
Perform bulk load (Ignores Database log)
Increase commit interval (Recovery is compromised)
Tune the database for RBS, Dynamic Extension etc.,
2. Sources
Set a filter transformation after each SQ and see the records are not through.
If the time taken is same then there is a problem.
You can also identify the Source problem by
Read Test Session – where we copy the mapping with sources, SQ and remove all transformations
and connect to file target. If the performance is same then there is a Source bottleneck.
Using database query – Copy the read query directly from the log. Execute the query against the
source database with a query tool. If the time it takes to execute the query and the time to fetch
the first row are significantly different, then the query can be modified using optimizer hints.
Solutions:
Optimize Queries using hints.
Use indexes wherever possible.
3. Mapping
If both Source and target are OK then problem could be in mapping.
Add a filter transformation before target and if the time is the same then there is a problem.
(OR) Look for the performance monitor in the Sessions property sheet and view the counters.
Solutions:
If High error rows and rows in lookup cache indicate a mapping bottleneck.
Optimize Single Pass Reading:
Optimize Lookup transformation :
1. Caching the lookup table:
When caching is enabled the informatica server caches the lookup table and queries the
cache during the session. When this option is not enabled the server queries the lookup
table on a row-by row basis.
Static, Dynamic, Shared, Un-shared and Persistent cache
2. Optimizing the lookup condition
Whenever multiple conditions are placed, the condition with equality sign should take
precedence.
3. Indexing the lookup table
The cached lookup table should be indexed on order by columns. The session log contains
the ORDER BY statement
The un-cached lookup since the server issues a SELECT statement for each row passing
into lookup transformation, it is better to index the lookup table on the columns in the
condition
4. Sessions
If you do not have a source, target, or mapping bottleneck, you may have a session bottleneck.
You can identify a session bottleneck by using the performance details. The informatica server
creates performance details when you enable Collect Performance Data on the General Tab of
the session properties.
Performance details display information about each Source Qualifier, target definitions, and
individual transformation. All transformations have some basic counters that indicate the