Performance problem

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
mousazzi
Participant
Posts: 18
Joined: Thu Nov 23, 2006 3:56 am

Performance problem

Post by mousazzi »

Hi all. I have to load a table with a file of 3.5 Gb corrisponding to 9.000.000 record. Initially DataStage loads record at 1.500 rows/second but, after 2.000.000 record, it decrease to 500 r/s ad finish at 250 r/s. Is there an answer to this behaviour ? In which way can i increase the performace ? Thanks in advance.
senthilmp
Participant
Posts: 85
Joined: Mon Sep 22, 2008 6:11 am

Post by senthilmp »

I think you can use ORACEL BULK LOAD stage, this will give you enormous amount of performance tuning
Saad
Participant
Posts: 16
Joined: Fri Nov 04, 2005 11:50 pm
Location: Islamabad

Re: Performance problem

Post by Saad »

Can you give some more information about your job structure, like it source stages, intermediate processing stages and finally where actually you're inserting/writing data ?

Saad
mousazzi
Participant
Posts: 18
Joined: Thu Nov 23, 2006 3:56 am

Post by mousazzi »

The job is:
Oci Stage -> Transformer -> Oci Stage
The job perform an Update / Insert record
Hope this is useful
senthilmp
Participant
Posts: 85
Joined: Mon Sep 22, 2008 6:11 am

Post by senthilmp »

if its doing update and insert mean it will take more time to process, Oracle bulk load doesnt support this.
vijay.barani
Participant
Posts: 78
Joined: Wed Jun 04, 2008 2:59 am

Post by vijay.barani »

We can use DRS STAGE instead of oracle bulk load stage
Warm Regards,
Vijay
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

The DRS stage set to 'Oracle' is functionally equivalent to the OCI stage, so there's no gain from switching. And it doesn't take the place of a bulk loader any more than OCI does.
-craig

"You can never have too many knives" -- Logan Nine Fingers
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

senthilmp wrote:if its doing update and insert mean it will take more time to process, Oracle bulk load doesnt support this.
It does, to some extent, with a conventional (DIRECT=FALSE) load. But you're correct about the performance over the duration of the load. Any of those 'combo' Update Actions are a crutch, IMHO, that enable poor or lazy job design, and picking the correct one is critical to minimizing the damage.

Think about it. If you say 'Insert else Update' and what you end up doing are primarily updates, then you are burning two database operations to get one record into the table. Same goes for the opposite situation. Some portion of your loads will take twice as long as they should. Plus there's the old standby of updating with non-indexed Key coumns, each update is a full table scan so the more you do the slower it can get. If both are going on - double whammy.

Best solution? Pre-qualify your inserts and updates using a reference hashed file, the Heart & Soul of the Server product. Bulk load the inserts with a direct path load. Then the updates can follow, either as normal OCI updates or perhaps as a conventional bulk load or even as a MERGE performed from a bulk-loaded work table. This becomes a teensy bit more complicated if records inside the dataset you are loading fall into both the insert and update camp, but it's not that hard to handle.

Bottom line, anything noted above - heck, even pre-qualified OCI insert and updates links (plural) - will perform better than your current design.
-craig

"You can never have too many knives" -- Logan Nine Fingers
Post Reply