|
Sometimes it is poor program design.
I was a consultant at Blockbuster Video in Dallas during their JDE World
software implementation in 1990. Shortly after go-live it was
determined that there was a serious performance issue in the batch sales
update program which runs nightly - it was taking several hours to run,
sometimes over four hours. The nightly backup window was pretty tight
and this was before the days of save-while-active, and this run time was
unacceptable.
They were opening several new stores each day, resulting in thousands of
sales orders detail lines being processed each night by sales update, so
this was a persistent problem that needed an immediate fix.
I was tasked with analyzing the problem, and while watching the job run
I was seeing hundred of thousands of I/O's against the F0006
(Branch/Plant) file, but we didn't have that many branch/plant records...
Studying the pristine JDE code (which was machine-generated by their
CASE tool and tweaked by humans), I determined that while processing a
given sales order detail record that the program would CHAIN to the
F0006 file several times (usually in different subroutines) using the
same key value. This problem was occurring on other master files as well.
It appears that the CASE tool wasn't smart enough to know if a record
had been retrieved, so it just generated the additional code and
retrieved it again...
Solution:
If a record has been previously retrieved, there is no need to retrieve
it again, so my quick-fix solution was to code something like this
around each CHAIN to reduce the redundant I/O's:
SDMCU IFNE SVMCU
MOVELSDMCU SVMCU
SDMCU CHAINI0006
ENDIF
The result was that the job which was taking four hours to run was now
running in 2 hours or less...
Regards,
Steve
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.