A couple more things:
 - do you have any other processes running at the same time? I found (long
ago) that a couple of our big processes ran 5X faster consecutively than
they did concurrently.
 - subroutine calls with file opens. I inherited a process that was running
for 3 days and was 65% done. I put all of the file opens in common (well,
the file variables) and re-ran in hours.

You may want to re-think posting some of the code. There can be some
efficiencies found in processing large dynamic arrays. You said it wasn't
code you wrote - so try to take the criticism as constructive :)


-----Original Message-----
From: Tom Whitmore
Sent: May 1, 2012 5:50 AM
To: U2 Users List
Subject: Re: [U2] READU vs READ

The question of READU vs READ when you are doing updates is moot.  If you do
a READ then a WRITE, UniVerse/UniData will perform the record lock.  The
only difference is with READ you are gambling that no one else is updating
the record before you perform your WRITE.

Performance, as others suggested, there are several things to do: 
    Tune your files.  
    If you are using dynamic files, make sure you have the MINIMUM.MODULUS
set to reduce the shrink and merging
    If the records are "lumpy" redesign them so you have a header file and a
detail file, with detail files being individual records for the associated
    Use LIST.INDEX with the STATISTICS option to see if you have huge index
value, you may need to refine the index.  
    Check your hardware, you may have a bottleneck due to slow disk, I/O
    Minimize the number of times you go through the associated values.  
    Use READU with the "LOCKED" clause, if the record is locked, add logic
to "queue" it up and try the records again once everything else is processed
(WRITEs will hang on a lock if you don't have the "LOCKED" clause, just like
a READU without the "LOCKED" clause.

Good luck!
RATEX Business Solutions

-----Original Message-----
From: Symeon Breen

Have you been able to do any os level tools to see what the utilisation of
resources is. E.g. on linux, vmstat, top, iostat will show you if it is a
diskio or cpu bottleneck.  If it is diskio (i.e. high wait on io times) then
you may need to upgrade the disks or add more ram so you have more data in

-----Original Message-----
From: Dave Laansma

Oh ... you're good ... I ALMOST pasted it ...

I know better that to put even FICTITIOUS code on this board ... unless I'm
just trying to rile things up about the OS. |-)

I do appreciate all of the input. Thank y'all for the info. I'll see what I
can do.

David Laansma

U2-Users mailing list

Reply via email to