Hi All,
Could someone please help us in optimizing one of the sortcard. The system is using syncsort version SYNCSORT FOR Z/OS 2.1.2.
About the sortcard:
This sortcard is using an input file and splitting it into 5 different files depending upon some include conditions. Currently it is processing around 300 million records in input and usually takes 18 minute of cpu tcb.
Could you please help us in providing some suggestion so that the CPU time can reduce.
There is no time-consuming operation in this example which might seriously affect the total CPU time spent by SORT utility.
Only one minor improvement can be suggested: eliminate OR/AND operators, and use single "SS,EQ", or "SS,NE" for the whole list of valid/invalid selection values. But I'm in doubt if it might improve total performance by more than 1-2%; the major time-consuming operations are: read/write 300B records, and moving data between I/O buffers, and temporary memory storage.
Keep in mind the rule from SORT manual:
Quote:
If the control statement does contain a literal string that would extend beyond column 71, place a continuation character in column 72 and begin the continuation of the literal string in column 16 of the next card image.
Joined: 17 Oct 2006 Posts: 2481 Location: @my desk
The substring comparison format you have used above would compare the field against each possible 4 byte strings.
For example,
Code:
5,4,SS,EQ,C'0008,0013,0015,0017'
would look for
Code:
0008
008,
08,0
8,00
.....and so on. So you might be doing a lot more checks than that are actually required.
I dont have Syncsort and can't test this, but I would suggest you try modifying this into individual ORs instead of a substring SS search and see if that improves anything.
In order to simplify the multiple EQ/ORs, you can use the below format if your Syncsort version supports it.