Update Without Update Strategy for Better Session Performance
You might have come across an ETL scenario, where you need to update a huge table with few records and occasional inserts. The straight forward approach of using LookUp transformation to identify the Inserts, Update and Update Strategy to do the Insert or Update may not be right for this particular scenario, mainly because of the LookUp transformation may not perform better and start degrading as the lookup table size increases.
In this article lets talk about a design, which can take care of the scenario we just spoke.
The Theory
When you configure an Informatica PowerCenter session, you have several options for handling database operations such as insert, update, delete.
Specifying an Operation for All Rows
During session configuration, you can select a single database operation for all rows using the Treat Source Rows As setting from the 'Properties' tab of the session.
- Insert :- Treat all rows as inserts.
- Delete :- Treat all rows as deletes.
- Update :- Treat all rows as updates.
- Data Driven :- Integration Service follows instructions coded into Update Strategy flag rows for insert, delete, update, or reject.
Specifying Operations for Individual Target Rows
Once you determine how to treat all rows in the session, you can also set options for individual rows, which gives additional control over how each rows behaves. Define these options in the Transformations view on Mapping tab of the session properties.
- Insert :- Select this option to insert a row into a target table.
- Delete :- Select this option to delete a row from a table.
- Update :- You have the following options in this situation:
- Update as Update :- Update each row flagged for update if it exists in the target table.
- Update as Insert :- Insert each row flagged for update.
- Update else Insert :- Update the row if it exists. Otherwise, insert it.
- Truncate Table :- Select this option to truncate the target table before loading data.
Design and Implementation
Now we understand the properties we need to use for our design implementation.
We can create the mapping just like an 'INSERT' only mapping, with out LookUp, Update Strategy Transformation. During the session configuration lets set up the session properties such that the session will have the capability to both insert and update.
First set Treat Source Rows As property as shown in below image.
Now lets set the properties for the target table as shown below. Choose the properties Insert and Update else Insert.
Thats all we need to set up the session for update and insert with out update strategy.
Hope you enjoyed this article. Please leave us a comment below, if you have any difficulties implementing this. We will be more than happy to help you.