IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

How to improve the performance of SYNCSORT


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
seman18

New User


Joined: 08 Feb 2009
Posts: 67
Location: hz

PostPosted: Fri Mar 12, 2010 7:01 am
Reply with quote

I doubt if I can reduce the eclipsed time for following job, can someone give any advices, thx! BTW, the sortin is tape file, and sortout is ps file
Code:

//SORT  EXEC  PGM=SYNCSORT,REGION=0K                             
//SORTIN   DD  DSN=XXX.XXX.DAILY(0),DISP=SHR       
//SORTOUT  DD  DSN=XXXX,XXXX,XXXX,DISP=(NEW,CATLG,DELETE),
//            UNIT=SYSDA,                                       
//            SPACE=(CYL,(25,32),RLSE),                         
//            DCB=(RECFM=FB,LRECL=1092,BLKSIZE=22932)                   
       
//SORTWK01 DD  UNIT=SYSDA,                                       
//             SPACE=(CYL,(20,32),RLSE)                         
//SORTWK02 DD  UNIT=SYSDA,                                       
//             SPACE=(CYL,(20,32),RLSE)                         
//SORTWK03 DD  UNIT=SYSDA,                                       
//             SPACE=(CYL,(20,32),RLSE)       
//SORTWK04 DD  UNIT=SYSDA,                             
//             SPACE=(CYL,(20,32),RLSE)               
//SORTWK05 DD  UNIT=SYSDA,                             
//             SPACE=(CYL,(20,32),RLSE)               
//SORTWK06 DD  UNIT=SYSDA,                             
//             SPACE=(CYL,(20,32),RLSE)               
//SYSOUT   DD  SYSOUT=*                               
//SYSPRINT DD  SYSOUT=*                               
//SYSIN  DD *                                         
  SORT FIELDS=(1,4,CH,A,11,9,CH,A,28,6,CH,A)           
  INCLUDE COND=(9,2,CH,EQ,C'00',AND,135,1,CH,EQ,C'1')                   
[/code]
Back to top
View user's profile Send private message
CICS Guy

Senior Member


Joined: 18 Jul 2007
Posts: 2146
Location: At my coffee table

PostPosted: Fri Mar 12, 2010 7:20 am
Reply with quote

Can you do buffers on the SORTIN? Do you need to do buffers on the SORTIN?
Does the INCLUDE take effect after the sort or before?
The RLSEs are not needed, are any of the SORTWKs needed? Is your specifing them limiting Syncsort's own abilities to dynamically allocating a better value/number?
Have you checked your sort manual?
Back to top
View user's profile Send private message
Terry Heinze

JCL Moderator


Joined: 14 Jul 2008
Posts: 1249
Location: Richfield, MN, USA

PostPosted: Fri Mar 12, 2010 8:04 am
Reply with quote

Both Syncsort and DFSORT use their own BUFNO values for input and output.
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1702
Location: Australia

PostPosted: Fri Mar 12, 2010 8:05 am
Reply with quote

and INCLUDE takes effect before the sort


Gerry
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Fri Mar 12, 2010 1:27 pm
Reply with quote

You might like to consider PARASORT as your SORTIN is on tape. Is yout sortin multi-volume? Then too ,you should be considering PARASORT. PARASORT allows you to read more than one volume at a time. PARASORT is fully documented in Chapter 10 of the SyncSort for z/OS Programmer's Guide.
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Fri Mar 12, 2010 1:32 pm
Reply with quote

Quote:
I doubt if I can reduce the eclipsed time for following job, can someone give any advices, thx! BTW, the sortin is tape file, and sortout is ps file
  • What is eclipsed, in this context?
  • I believe you meant elapsed time?
  • If yes, how much elapsed time?
  • How many records are there in sort-in, any estimate you have?
  • Quote:
    and sortout is ps file
    ok, file on tape is also, essentially, a sequential file - did you mean it's on DASD?
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Fri Mar 12, 2010 1:36 pm
Reply with quote

One more time - Tuning SyncSort is usually application specific. So, we'll be intrested to see "B" messages, if they are not already present in SYSOUT, you can add the following to the sort step(s) in question:
Code:
//$ORTPARM DD *
 MSG=AP,LIST,BMSG
and post us back the details.
Back to top
View user's profile Send private message
Marso

REXX Moderator


Joined: 13 Mar 2006
Posts: 1353
Location: Israel

PostPosted: Fri Mar 12, 2010 1:54 pm
Reply with quote

You can try any (or all) of the following:
  • Run the sort without SORTWK. Syncsort should be smart enough to allocate exactly what it needs, and that may be different from what you gave.
  • Copy the tape to disk and run the sort from there. You will be able to see the cost of the tape reading and of the sort itself separately.
  • Check if the blocksize for the tape records is optimized. Small blocks may lead to a lot of I/Os and be costly.
Come back to tell us what happened.
Back to top
View user's profile Send private message
seman18

New User


Joined: 08 Feb 2009
Posts: 67
Location: hz

PostPosted: Fri Mar 12, 2010 2:34 pm
Reply with quote

I remove the sortwk statement, however, it doesn't help.
how can I do buffer on sortin, I will try it!
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Fri Mar 12, 2010 2:47 pm
Reply with quote

seman18 wrote:
I remove the sortwk statement, however, it doesn't help.
Removing sortwork should not affect elasped time, if you code them sort will look for them (and they will be checked for syntax error) otherwise it'll pick, how many are neede, as per DYNALLOC parameter.

I hope other posts of mine are visible at other end (some body tell me icon_smile.gif)- you might like to consider them...
Back to top
View user's profile Send private message
PeterHolland

Global Moderator


Joined: 27 Oct 2009
Posts: 2481
Location: Netherlands, Amstelveen

PostPosted: Fri Mar 12, 2010 3:26 pm
Reply with quote

How about operator intervention time for tape handling?
Back to top
View user's profile Send private message
Terry Heinze

JCL Moderator


Joined: 14 Jul 2008
Posts: 1249
Location: Richfield, MN, USA

PostPosted: Fri Mar 12, 2010 5:57 pm
Reply with quote

seman18 wrote:
how can I do buffer on sortin, I will try it!
See my previous post, seman18.
Back to top
View user's profile Send private message
mmwife

Super Moderator


Joined: 30 May 2003
Posts: 1592

PostPosted: Sat Mar 13, 2010 8:17 pm
Reply with quote

Hi Seman,

Anuj's suggestion of PARASORT is probably your best bet. Peter's ques about vol mount delays can be be addressed by specifying 2 tape units in your JCL. It also can negate the time lost in tape rewinds.

But that assumes the tape operator hasn't fallen asleep. icon_smile.gif
Back to top
View user's profile Send private message
seman18

New User


Joined: 08 Feb 2009
Posts: 67
Location: hz

PostPosted: Mon Mar 15, 2010 3:11 pm
Reply with quote

I try to use parasort based on this discussion, however, I got JCL Error
Code:
//SORT  EXEC  PGM=SYNCSORT,PARM='PARASORT,NOEQUALS'         
//SORTIN   DD  DSN=xxx.xxx.xxx(0),DISP=SHR   
//SORTPAR1 DD DSN=*.SORTIN,DISP=OLD,UNIT=AFF=SORTIN         
//SORTPAR2 DD DSN=*.SORTIN,                                 
// DISP=(NEW,KEEP,KEEP),UNIT=(CART,,DEFER),VOL=PRIVATE     
***ERROR  - DSS4352E - DISP FIELD INCOMPATIBLE WITH DSNAME 
//SORTPAR3 DD DSN=*.SORTIN,                                 
// DISP=(NEW,KEEP,KEEP),UNIT=(CART,,DEFER),VOL=PRIVATE     
***ERROR  - DSS4352E - DISP FIELD INCOMPATIBLE WITH DSNAME 
//SORTPAR4 DD DSN=*.SORTIN,                                 
// DISP=(NEW,KEEP,KEEP),UNIT=(CART,,DEFER),VOL=PRIVATE     
***ERROR  - DSS4352E - DISP FIELD INCOMPATIBLE WITH DSNAME 
//SORTOUT  DD  DSN=xxx.xxx.xx,DISP=OLD           
//SYSOUT   DD  SYSOUT=*                                     
//SYSPRINT DD  SYSOUT=*                                     
//SYSIN  DD *                                               
  SORT FIELDS=(1,4,CH,A,11,9,CH,A,28,6,CH,A)               
  INCLUDE COND=(9,2,CH,EQ,C'00',AND,135,1,CH,EQ,C'1') 
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Mon Mar 15, 2010 3:56 pm
Reply with quote

Code:
***ERROR  - DSS4352E - DISP FIELD INCOMPATIBLE WITH DSNAME

Code:
***ERROR  - DSS4352E - DISP FIELD INCOMPATIBLE WITH DSNAME 

Code:
***ERROR  - DSS4352E - DISP FIELD INCOMPATIBLE WITH DSNAME
All these are JCL syntax-check errors - And before you use SORTPARn, you need to decide for SORTIN if that qualifies for any of these cases:

• A multi-volume cataloged data set
• A multi-volume uncataloged data set
• Concatenated single and multi-volume uncataloged data sets
Back to top
View user's profile Send private message
Terry Heinze

JCL Moderator


Joined: 14 Jul 2008
Posts: 1249
Location: Richfield, MN, USA

PostPosted: Mon Mar 15, 2010 7:02 pm
Reply with quote

It looks like you've defined some of your input data sets as NEW and your output as OLD.
Back to top
View user's profile Send private message
seman18

New User


Joined: 08 Feb 2009
Posts: 67
Location: hz

PostPosted: Tue Mar 16, 2010 8:12 am
Reply with quote

hi Anuj Dhawan,
How can I indentify which case the sortin belong to, and then how to modify the sortin statement, thx!
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Tue Mar 16, 2010 9:09 am
Reply with quote

Hello,

Quote:
How can I indentify which case the sortin belong to
What is the question here? What is "case"?

Terry told you of some problems. Have you corrected them?

What happened?
Back to top
View user's profile Send private message
seman18

New User


Joined: 08 Feb 2009
Posts: 67
Location: hz

PostPosted: Wed Mar 17, 2010 8:22 am
Reply with quote

I got the SYNCSORT Programming guide, and use the synclist to get the following information
Code:

           3420     3480/90     3490E       3590       
       |----------|----------|----------|----------|   
 4-WAY |   NOT    |   NOT    |  PARE41  |   NOT    |   
 INPUT | POSSIBLE | POSSIBLE |  PARE42  | POSSIBLE |   
       |          |          |  PARE43  |          |   
       |          |          |  PARE44  |          |   
       |----------|----------|----------|----------|   
 3-WAY |   NOT    |   NOT    |  PARE31  |   NOT    |   
 INPUT | POSSIBLE | POSSIBLE |  PARE32  | POSSIBLE |   
       |          |          |  PARE33  |          |   
       |----------|----------|----------|----------|   
 2-WAY |   NOT    |   NOT    |  PARE21  |   NOT    |   
 INPUT | POSSIBLE | POSSIBLE |  PARE22  | POSSIBLE |   
       |----------|----------|----------|----------|   

and I got the dataset in tape's detail using listcat as following
Code:

 VOLSER------------411991     DEVTYPE------X'78048081'
 VOLSER------------414254     DEVTYPE------X'78048081'
 VOLSER------------414693     DEVTYPE------X'78048081'
 VOLSER------------415183     DEVTYPE------X'78048081'
 VOLSER------------415642     DEVTYPE------X'78048081'
 VOLSER------------416409     DEVTYPE------X'78048081'
 VOLSER------------416862     DEVTYPE------X'78048081'

then I modify my jcl, and got following error
Code:

//SORT  EXEC  PGM=SYNCSORT,PARM='PARASORT,NOEQUALS'             
//SORTIN   DD  DSN=xxx.xxx.xx(0),DISP=(OLD,KEEP),
//             UNIT=(PARE41,2,DEFER)                             
***ERROR  - DSS4940E - UNABLE TO IDENTIFY UNIT NAME "PARE41 "   
//SORTPAR1 DD DSN=*.SORTIN,DISP=OLD,UNIT=AFF=SORTIN             
//SORTPAR2 DD DSN=*.SORTIN,                                     
// DISP=(,KEEP,KEEP),UNIT=(PARE42,2,DEFER),VOL=PRIVATE           
***ERROR  - DSS4352E - DISP FIELD INCOMPATIBLE WITH DSNAME       
***ERROR  - DSS4940E - UNABLE TO IDENTIFY UNIT NAME "PARE42 "   
//SORTPAR3 DD DSN=*.SORTIN,                                     
// DISP=(,KEEP,KEEP),UNIT=(PARE43,2,DEFER),VOL=PRIVATE           
***ERROR  - DSS4352E - DISP FIELD INCOMPATIBLE WITH DSNAME       
***ERROR  - DSS4940E - UNABLE TO IDENTIFY UNIT NAME "PARE43 "   
//SORTPAR4 DD DSN=*.SORTIN,                                     
// DISP=(,KEEP,KEEP),UNIT=(PARE44,2,DEFER),VOL=PRIVATE           
***ERROR  - DSS4352E - DISP FIELD INCOMPATIBLE WITH DSNAME       
***ERROR  - DSS4940E - UNABLE TO IDENTIFY UNIT NAME "PARE44 "   
//SORTOUT  DD  DSN=xxx.xxx.xxx,DISP=OLD                 

Device type is 78048081,which repsent 3490, so based the synclist information, does it means I cannot use parasort on this tape?
Back to top
View user's profile Send private message
Terry Heinze

JCL Moderator


Joined: 14 Jul 2008
Posts: 1249
Location: Richfield, MN, USA

PostPosted: Wed Mar 17, 2010 8:44 am
Reply with quote

I don't have access to a Syncsort manual and you do. Aren't there any JCL examples in it for use with the PARASORT parameter?
Back to top
View user's profile Send private message
seman18

New User


Joined: 08 Feb 2009
Posts: 67
Location: hz

PostPosted: Wed Mar 17, 2010 10:05 am
Reply with quote

yes, there is a sample
Code:

//SORTIN DD DSN=....,DISP=(OLD,KEEP),UNIT=(PAR441,2,DEFER)
//SORTPAR1 DD DSN=*.SORTIN,DISP=OLD,
// UNIT=AFF=SORTIN
//SORTPAR2 DD DSN=*.SORTIN,DISP=(,KEEP,KEEP),
// VOL=PRIVATE,UNIT=(PAR442,2,DEFER)
//SORTPAR3 DD DSN=*.SORTIN,DISP=(,KEEP,KEEP),
// VOL=PRIVATE,UNIT=(PAR443,2,DEFER)
//SORTPAR4 DD DSN=*.SORTIN,DISP=(,KEEP,KEEP),
// VOL=PRIVATE,UNIT=(PAR444,2,DEFER)


Code:

3420 3480/90 3490E 3590
|----------|----------|----------|----------|
4-WAY | PAR241 | PAR441 | PARE41 | NOT |
INPUT | PAR242 | PAR442 | PARE42 | POSSIBLE |
| PAR243 | PAR443 | PARE43 | |
| PAR244 | PAR444 | PARE44 | |
[/code]
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Wed Mar 17, 2010 7:31 pm
Reply with quote

Hello,

In the manual (before the table you posted) is:
Quote:
For optimal PARASORT performance, SyncSort must be able to read each SORTPARn input DD simultaneously, with no channel contention. To ensure this, your system programming staff may have defined special esoteric unit names for use with PARASORT. Before creating a PARASORT application, you should contact your system programmer to verify that this work has been done and that the special names are available for use.

Note, however, that even if the work has been done, certain categories may be unavailable due to limited channel capacity.

To use special esoteric names, do the following:
1. Decide whether you would like to specify 4-way (up to SORTPAR4), 3-way (up to SORTPAR3) or 2-way (up to SORTPAR2) input.
2. In the table of special esoteric names provided by your systems programmer, find the name that corresponds to the tape type of the SORTIN data sets.

The following is a sample table of special esoteric names. This table is for illustration only; the names at your site may be different.


Did you review this with your systems programmer(s)?
Back to top
View user's profile Send private message
seman18

New User


Joined: 08 Feb 2009
Posts: 67
Location: hz

PostPosted: Wed Mar 17, 2010 8:10 pm
Reply with quote

I specify 4-way, and use PARE41-PARE44 for SORTPAR, so can you tell mewhat's my problem?
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Wed Mar 17, 2010 8:18 pm
Reply with quote

Code:
**ERROR  - DSS4940E - UNABLE TO IDENTIFY UNIT NAME "PARE44 "

the esoteric names You are using are not defined
what was not clear in the syncsort manual quote ??? ...

Quote:
For optimal PARASORT performance, SyncSort must be able to read each SORTPARn input DD simultaneously, with no channel contention. To ensure this, your system programming staff may have defined special esoteric unit names for use with PARASORT. Before creating a PARASORT application, you should contact your system programmer to verify that this work has been done and that the special names are available for use.

Note, however, that even if the work has been done, certain categories may be unavailable due to limited channel capacity.

To use special esoteric names, do the following:
1. Decide whether you would like to specify 4-way (up to SORTPAR4), 3-way (up to SORTPAR3) or 2-way (up to SORTPAR2) input.
2. In the table of special esoteric names provided by your systems programmer, find the name that corresponds to the tape type of the SORTIN data sets.

The following is a sample table of special esoteric names. This table is for illustration only; the names at your site may be different.
Back to top
View user's profile Send private message
Alissa Margulies

SYNCSORT Support


Joined: 25 Jul 2007
Posts: 496
Location: USA

PostPosted: Wed Mar 17, 2010 9:14 pm
Reply with quote

The Parasort Esoteric Unit Name Table produced by the SYNCLIST report program should provide the available drives.

Seman18,

Please email me offline at alissa.margulies@syncsort.com and send me your SYNCLIST and the complete PARASORT job listing as text attachments and I would be happy to further assist you.

Regards,
Alissa
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM Goto page 1, 2  Next

 


Similar Topics
Topic Forum Replies
No new posts Compare only first records of the fil... SYNCSORT 7
No new posts exploiting Z16 performance PL/I & Assembler 2
No new posts JOIN STATEMENT PERFORMANCE. DFSORT/ICETOOL 12
No new posts Count Records with a crietaria in a f... DFSORT/ICETOOL 5
No new posts DFSORT/SYNCSORT/ICETOOL JCL & VSAM 8
Search our Forums:

Back to Top