OCI stage tuning

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
ayan
Participant
Posts: 64
Joined: Fri Oct 23, 2009 4:09 am

OCI stage tuning

Post by ayan »

Folks,

I am devoloping a job which reads from oracle via oci stage .When I tried to configure the OCI stage I found these two prroperties called array size and prefetch memory setting.Could you please help me to undestand the exact significance of these two properties? Array size is 1 by default.Should I set it to a higher value like 10,000?If so then how will it change the behaviour of oci stage?Also prefetch memory setting is 0 by default.What value should I use here to gain a performance advantage?

Regards,
Ayan
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Click the Help button in the stage. I've never had a need to touch the prefetch and Array Size has too many variables to simply give anyone a number. It controls how many records are sent 'at a time' over the network to the database, so 1 would be the slowest but sometimes things only work when it is set to 1.
-craig

"You can never have too many knives" -- Logan Nine Fingers
ArndW
Participant
Posts: 16318
Joined: Tue Nov 16, 2004 9:08 am
Location: Germany
Contact:

Post by ArndW »

The optimal array size is so that one fetch fits inside one block (which I think is a default of 2048, but that might be version/platform/install dependant). As Craig said, 1 is the slowest but 100 might be even slower, so testing various values will be your best bet to tuning this stage using the array size.
ayan
Participant
Posts: 64
Joined: Fri Oct 23, 2009 4:09 am

Post by ayan »

There is another property called Transaction size. I understand this number defines the Commit Interval and should not be too small .But does it have any correlation with array size like transaction size should be multiple of array size or something?
Ayan
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Yes, it controls how often a commit is done and yes, Transaction Size should be (IMHO) an even multiple of the Array Size as a best practice.
-craig

"You can never have too many knives" -- Logan Nine Fingers
gateleys
Premium Member
Premium Member
Posts: 992
Joined: Mon Aug 08, 2005 5:08 pm
Location: USA

Post by gateleys »

Array size can surely give you faster reads (and writes) if you can test for the optimal setting. Never used prefetch in OCI.
gateleys
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

True. That 'optimal size' varies based on ARL, network packet size, phase of the moon, yada yada yada. So, as you noted, testing is required to find that 'sweet spot' for each stage / job / combination. :wink:
-craig

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