Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

How to improve the performance of SYNCSORT
Goto page 1, 2  Next
 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
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    Post subject: How to improve the performance of SYNCSORT
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: 2150
Location: At my coffee table

PostPosted: Fri Mar 12, 2010 7:20 am    Post subject:
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: 1238
Location: Richfield, MN, USA

PostPosted: Fri Mar 12, 2010 8:04 am    Post subject:
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: 1703
Location: Australia

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

and INCLUDE takes effect before the sort


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

Senior Member


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

PostPosted: Fri Mar 12, 2010 1:27 pm    Post subject:
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

Senior Member


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

PostPosted: Fri Mar 12, 2010 1:32 pm    Post subject:
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

Senior Member


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

PostPosted: Fri Mar 12, 2010 1:36 pm    Post subject:
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: 1219
Location: Israel

PostPosted: Fri Mar 12, 2010 1:54 pm    Post subject:
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    Post subject:
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

Senior Member


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

PostPosted: Fri Mar 12, 2010 2:47 pm    Post subject:
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: 2422
Location: Netherlands, Amstelveen

PostPosted: Fri Mar 12, 2010 3:26 pm    Post subject:
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: 1238
Location: Richfield, MN, USA

PostPosted: Fri Mar 12, 2010 5:57 pm    Post subject:
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    Post subject:
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    Post subject:
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

Senior Member


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

PostPosted: Mon Mar 15, 2010 3:56 pm    Post subject:
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: 1238
Location: Richfield, MN, USA

PostPosted: Mon Mar 15, 2010 7:02 pm    Post subject:
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    Post subject:
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

Site Director


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

PostPosted: Tue Mar 16, 2010 9:09 am    Post subject:
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    Post subject:
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: 1238
Location: Richfield, MN, USA

PostPosted: Wed Mar 17, 2010 8:44 am    Post subject:
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
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM All times are GMT + 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts PL/I code tuning/Performance improvement Virendra Shambharkar PL/I & Assembler 4 Mon Dec 05, 2016 11:57 am
No new posts syncsort: copy lines after the keyword shreya19 SYNCSORT 7 Fri Dec 02, 2016 9:47 am
No new posts Syncsort - Hard coded Value in output PORYES SYNCSORT 1 Thu Nov 03, 2016 9:23 am
No new posts What are the way we can improve CPU p... Gunapala CN DB2 10 Mon Oct 24, 2016 2:16 pm
No new posts Syncsort - NULL in Integer field chec... nartcr SYNCSORT 4 Thu Oct 06, 2016 6:47 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us