Performance tuning for one to one jobs

Post questions here relative to DataStage Server Edition for such areas as Server job design, DS Basic, Routines, Job Sequences, etc.

Moderators: chulett, rschirm, roy

Post Reply
120267
Participant
Posts: 30
Joined: Tue Jun 07, 2005 12:27 am

Performance tuning for one to one jobs

Post by 120267 »

Hi all,

I am receiving the 20 million source records.Using one to one mapping i am loading these source records directly into target.But its taking nearly 45 minutes to load.
How can i increase the performance in this case?
Pls do the needful.
kerensho
Participant
Posts: 13
Joined: Mon Jul 11, 2005 5:36 am

not enough information

Post by kerensho »

Hi,

what is your target? Oracle, Informix, SqlServer...? are you using Plug in or ODBC?

in any case, one of the things you should check is the number of rows per transaction (I.E after how many rows the DS will send a commit request).

Good luck,
Keren
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

In addition to the target, what type is your Source?
120267
Participant
Posts: 30
Joined: Tue Jun 07, 2005 12:27 am

Re: not enough information

Post by 120267 »

My Source & Targets are:Oracle stage.I am using the transaction size as zero.If i change this to 100 0r 1000 what would be the impact to performance?
Thanks in advance
:)
kerensho wrote:Hi,

what is your target? Oracle, Informix, SqlServer...? are you using Plug in or ODBC?

in any case, one of the things you should check is the number of rows per transaction (I.E after how many rows the DS will send a commit request).

Good luck,
Keren
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

We can't answer that, as there are too many factors. But why don't you try it in your system and get a definitive answer?

Oracle -> Oracle. Hmmm, if they are in the same instance/schema then it might be fastest to stay within Oracle and do the copy.

You can make the job multi-instance and add a parameter that limits the SELECT of the source to a subset of the total data, then call several instances in parallel, each getting a portion of the total work. This creates a parallel load which can be much faster.

If you are loading to Oracle you can use the bulk load capabilities of DataStage; but most likely you will be constrained by the speed of the read in that case. You should read up on the Oracle stage in the documentation, specifically the array size.
kerensho
Participant
Posts: 13
Joined: Mon Jul 11, 2005 5:36 am

Number of rows

Post by kerensho »

Hi,

Like Arnd said, there are too many factors to answer you. but just to make sure you fully understand transaction size: the number you put there is how many rows DS will write before doing a commit. in other words, all those rows will be written to Oracle Buffers in case it will need to Rollback. when you put "0" you tell DS to write everything in one transaction - in case of 20M rows, you are probably filling those buffers - you will see that the number of rows per seconds in DS statistics is going down as it progressing.

in short, you probably don't want to put 0 on such a big insert :wink:

Keren
Post Reply