我正在使用DFSORT将Tape数据集复制到临时文件,并处理大约8000万条记录。仅花费3个小时即可复制数据集。
有没有其他方法可以减少CPU时间。
建议将非常有帮助。
谢谢。
//STEP40 EXEC SORTD
//SORTIN DD DSN=FILEONE(0),
// DISP=SHR
//SORTOUT DD DSN=&&TEMP,
// DISP=(NEW,PASS,DELETE),
// DCB=(RECFM=FB,LRECL=30050,BLKSIZE=0),
// UNIT=TAPE
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(14,6,PD,A,8,6,PD,A,45,2,ZD,A)
OUTREC IFTHEN=(WHEN=(70,18,CH,EQ,C' encoding="IBM037"'),
OVERLAY=(70:C' encoding="UTF-8"'))
OPTION DYNALLOC=(SYSDA,255)
/*
最佳答案
关于改善I / O性能的一些评论,这应该会改善您的总体使用时间。
摘自IBM的MVS JCL Manual第143页。
//SORTIN DD DSN=FILEONE(0),
// DISP=SHR<b>,DCB=BUFNO=192</b>
//SORTOUT DD DSN=&&TEMP,
// DISP=(NEW,PASS,DELETE),
// DCB=(RECFM=FB,LRECL=30050,BLKSIZE=0,BUFNO=192),
// UNIT=TAPE
这些天,我选择192作为其相对便宜的内存。根据您的环境进行调整。这实质上告诉系统每个I / O读取多少个块,从而减少了与I / O操作有关的时间。您可以使用此数字来获得最佳结果。预设值为5。
BUFNO = buffers指定要分配的缓冲区数
到DCB。最大值通常为255,但可以由于以下原因而减小
该区域的大小。注意:请勿使用以下代码对BUFNO子参数进行编码
DCB子参数BUFIN,BUFOUT或DD参数QNAME。
这是有关BLKSIZE selection磁带的更多信息。
3490 Emulation (VTS) 262144 (256 KB)
3590 262144 (256 KB) (note: on some older models the limit is
229376 (224 KB) 262144 (256 KB)
//SORTOUT DD DSN=&&TEMP,// DISP=(NEW,PASS,DELETE),// DCB=(RECFM=FB,LRECL=30050,BLKSIZE=0,BUFNO=192),// UNIT=(TAPE,2)
当然,这些优化取决于您的物理环境和DFSMS设置。