Thank you Colin. I wouldn't post these types of 'issues' if I were thin-skinned and didn't appreciate input.
There are certainly some efficiencies in the updating of the multi-values. Unfortunately I cannot reorganize the data in the records, only the code that updates said data. I'll consider posting it. Names will have to be changed to protect 'the innocent' copyright. Sincerely, David Laansma IT Manager Hubbard Supply Co. Direct: 810-342-7143 Office: 810-234-8681 Fax: 810-234-6142 www.hubbardsupply.com "Delivering Products, Services and Innovative Solutions" -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Colin Alfke Sent: Tuesday, May 01, 2012 10:05 AM To: 'U2 Users List' Subject: Re: [U2] READU vs READ Dave; 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 :) hth Colin -----Original Message----- From: Tom Whitmore Sent: May 1, 2012 5:50 AM To: U2 Users List Subject: Re: [U2] READU vs READ Hi, 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 values. 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 pipe. 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! Tom 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 cache. -----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. Sincerely, David Laansma _______________________________________________ U2-Users mailing list [email protected] http://listserver.u2ug.org/mailman/listinfo/u2-users _______________________________________________ U2-Users mailing list [email protected] http://listserver.u2ug.org/mailman/listinfo/u2-users
