View previous topic :: View next topic
|
Author |
Message |
DJN
New User
Joined: 04 Jun 2009 Posts: 6 Location: INDIA
|
|
|
|
I have a job running for 86 minutes to write total of 3 million records(into four files).
Can i speeden the IO operation?I read somewhere instead writing to file after each process .its efficient to move to a temp ws array then write at a strech. Is it sounding meaningful?
I tried doing so didn't notice any difference.
Someone can help me to find a better soultion . |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
what is your lrecl, blocksize, buffer count on dd statement?
dasd or tape?
qsam,vsam?
what kind of a computer/ops system?
Quote: |
.its efficient to move to a temp ws array then write at a strech. Is it sounding meaningful? |
since you are adding a move to table item (with the attendant index/subscript adjustment)
instead of simply to record area for the write,
I would imagine that it would add time, not save. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Programs are either
- CPU-bound, meaning they're using all the CPU time they get and need more to continue, or
- I/O-bound, meaning they're waiting for I/O to be complete before they can continue.
The relevance is that if your program is CPU-bound, you can reduce the I/O time to zero and it would not have any impact on how long your program runs. So unless you have STROBE, APA, or another tool that will let you know if your program is CPU-bound or I/O-bound, you could be attempting to do the impossible.
If the job is not CPU-bound, things you can do to help reduce elapsed time include:
- adding buffers (at least a cylinder's worth) via DCB=BUFNO= or AMP= JCL statements to both input and output files
- running when little else is going on in the system
- running in a high priority batch initiator
- verify your files are not on high-traffic disk channels or packs
- don't write data if you don't have to -- the fastest I/O is the one you don't do
Considering you're reading 3 million to write 3 million, you're doing 6 million record processing in less than 1.5 hours, so the system isn't doing badly at all. One of our daily processes (that does not use a lot of CPU time) took 131 minutes yesterday to write 1,163,000 records -- but it does run when our system is busiest. |
|
Back to top |
|
|
DJN
New User
Joined: 04 Jun 2009 Posts: 6 Location: INDIA
|
|
|
|
the files are in Disk.
And you are right its adding to the CPU time when i use a TEMP Array.
Thanks for ur suggestion |
|
Back to top |
|
|
DJN
New User
Joined: 04 Jun 2009 Posts: 6 Location: INDIA
|
|
|
|
Hi Robert, Thanks for your suggestion.
Mine is not CPU bound
I wanna reduce CPU time. This job runs when our system is in busiest.(So it has to)
For 3 million records that too from various IMS parent child its doing good.
Thanks once again ; I will try if BUFNO can be of any use for me |
|
Back to top |
|
|
|