Example 2 — Unloading columns in clustering order
This example unloads from the same partitioned table space that was used in example 1 but unloads the data in clustering order.
This job achieves optimum performance through multitasking.
The SYSPRINT shows the following information:
- Message BMC51701I reports that four tasks can run concurrently, and that each task can use up to 32 sort work data sets.
- UNLOAD PLUS generates Db2 LOAD control cards by default (because the job does not include a CNTLCARDS option, but the JCL includes a SYSCNTL DD statement).
- Message 50041I indicates the status of zIIP processing. For this example, the ZIIP installation option is ENABLED, but an XBM subsystem was not specified. UNLOAD PLUS automatically located an available XBM subsystem to provide zIIP processing.
The following table describes the key command options for this job:
Command options used in JCL | Description |
---|---|
ORDER YES | Sorts output records in data-sorting key sequence |
LIMIT 2 | Unloads two records from each partition |
FIXEDVARCHAR YES | Tells UNLOAD PLUS to convert output records that would normally be variable-length to fixed length by padding variable-length columns with spaces |
SELECT | Specifies columns to unload and the order in which to unload them |
INTO | Specifies names and characteristics of output fields |
IF NULL VALUE ('xx') | Eliminates NULL indicator fields and replaces nulls with the value that you specify |
FROM | Names the table to unload |
The following figure shows the JCL for example 2:
//UNLOAD02 EXEC PGM=ADUUMAIN,REGION=0M,
// PARM=(DEHJ,'ADUXM02','NEW ',,'MSGLEVEL(1)')
//*********************************************************************
//STEPLIB DD DISP=SHR,DSN=product.libraries
// DD DISP=SHR,DSN=DB2.DSNEXIT
// DD DISP=SHR,DSN=DB2.DSNLOAD
//SYSIN DD *
*
UNLOAD
ORDER YES
LIMIT 2
FIXEDVARCHAR YES
SELECT DEPT_NO,
EMPL_LNAME,
SSN,
HIRE_DATE,
JOB_CODE,
SALARY_HRLY,
PART_401K
INTO
,
,
,
HIRE_DATE IF NULL VALUE('01/01/1991'),
JOB_CODE CHARACTER(2) IF NULL VALUE(' '),
SALARY_HRLY DECIMAL EXTERNAL(9,2) IF NULL VALUE(999.99),
PART_401K
IF PART_401K ='0' VALUE('N')
IF PART_401K ='1' VALUE('Y')
IF PART_401K = NULL VALUE ('N')
FROM BMC.EMPLS
*
//SYSREC DD DSN=ADU.EXAMPLE2.SYSREC,
// DISP=(,CATLG),SPACE=(TRK,(1,1)),UNIT=SYSDA
//SYSCNTL DD DSN=ADU.EXAMPLE2.SYSCNTL,
// DISP=(,CATLG),SPACE=(TRK,(1,1)),UNIT=SYSDA
//UTPRINT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
The following table shows the records that the job stream in example 2 produced. UNLOAD PLUS sorts output records by the clustering key, DEPT_NO. The numbers given for POS indicate the start and end positions for each field.
Although UNLOAD PLUS unloads the same table as in example 1, this output does not include NULL indicator fields because the UNLOAD command includes IF NULL clauses for all nullable fields. Also, because FIXEDVARCHAR YES is specified, EMPL_LNAME in the output is a VARCHAR field with a length indicator, but the character part of the field is always 20 bytes long. UNLOAD PLUS pads the character part of this field with blanks.
Record type | Record 1 | Record 2 | Record 3 | Record 4 | Record 5 | Record 6 | Record 7 | Record 8 |
---|---|---|---|---|---|---|---|---|
DEPT_NO POS(1,4) | 1100 | 1300 | 3200 | 3300 | 5100 | 5100 | 8200 | 8200 |
EMPL_LNAME POS(5,*) | Johnson | Broderick | Bronson | Doe | Williamson | George | Kennedy | Wilson |
SSN POS(22,30) | 490287572 | 387628543 | 837625104 | 463762574 | 828382664 | 182864652 | 583872386 | 283846563 |
HIRE_DATE POS(31,40) | 01/16/1993 | 08/23/1992 | 03/05/1990 | 01/01/1991 | 04/03/1992 | 05/19/1989 | 03/31/1993 | 04/25/1992 |
JOB_CODE POS(41,42) | 13 | 13 | 44 | 84 | 13 | 24 | 82 | 84 |
SALARY_HRLY POS(43,51) | 9.00 | 44000.00 | 6.25 | 32000.00 | 5.75 | 7.50 | 36000.00 | 45000.00 |
PART_401K POS(52,52) | N | Y | N | Y | Y | N | Y | N |
SYSPRINT for example 2
The following figure shows the SYSPRINT for example 2:
(C) COPYRIGHT 1991 - 2013 BMC SOFTWARE, INC.
BMC50001I UTILITY EXECUTION STARTING 10/28/2013 13:00:09 ...
BMC50002I UTILITY ID = 'ADUXM02'. DB2 SUBSYSTEM ID = 'DEHJ'. OPTION MODULE = 'ADU$OPTS'.
BMC50471I z/OS 2.1.0,PID=HBB7790,DFSMS FOR Z/OS=2.1.0,DB2=11.1.0
BMC50471I REGION=0M,BELOW 16M=8844K,ABOVE 16M=1413308K,IEFUSI=NO,CPUS=3
BMC50471I MEMLIMIT=17592186040320M,AVAILABLE=17592186040311M,MEMLIMIT SET BY:REGION=0
BMC50471I UNLOAD PLUS FOR DB2--V11.01.00
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I DB2 UTILITIES COMMON CODE--V11.01.00
BMC50471I NO MAINTENANCE TO REPORT
BMC50471I SOLUTION COMMON CODE--V11.01.00
BMC50471I MAINT: BPJ0661 BPJ0667 BPJ0671 BPJ0674 BPJ0675 BPJ0676 BPJ0682 BPJ0686 BPJ0689 BPJ0697
BMC50471I BMCSORT ENGINE--V02.04.01
BMC50471I MAINT: BPJ0691
BMC50471I BMC STATS API--V11.01.00
BMC50471I MAINT: BPU5409 BPU5534 BPU5674
BMC50471I EXTENDED BUFFER MANAGER--V06.01.00
BMC50471I MAINT: BPE0401 BPE0403 BPE0405 BPE0407 BPE0410 BPE0412 BPE0416
BMC50471I ANALYZE=(DB2STATS,NOLIMIT) FORCE_RPT=NO SMAX=16
BMC50471I CENTURY=(1950,2049) FORCE=NONE SMCORE=(0K,0K)
BMC50471I CHANGE_CONSISTENT=NO HISTORY=YES SORTNUM=32
BMC50471I CHANGE_QUIESCE=NO IBUFFS=25 SQLDELAY=3
BMC50471I CMAX=16 INLINE=NO SQLRETRY=100
BMC50471I CMRATIO=50 LOADDECP=NO TAPEDISP=DELETE
BMC50471I CONSTRULES=BMC LOCKROW=YES TASKMAX=200%
BMC50471I CURRENTDEGREE=NONE MAXP=5 UBUFFS=25
BMC50471I DELFILES=YES MSGLEVEL=1 UNLDMAX=200%
BMC50471I DRNDELAY=1 NULLCHAR=X'6F' UNLOADDN_ACTIVE=(YES,NO)
BMC50471I DRNRETRY=255 NULLTYPE=T1 UNLOADDN=(SYSREC,SYSRED)
BMC50471I DRNWAIT=NONE OPNDB2ID=YES USELRECL=NO
BMC50471I DSPLOCKS=DRNFAIL PLAN=ADUQA UXSTATE=SUP
BMC50471I EXCLDUMP=(X37,X22,X06) RECFM=AUTO WORKUNIT=SYSALLDA
BMC50471I FILEREFDN=SYSREF ROWSETSZ=100 ZIIP=ENABLED
BMC50471I FILL=NO SDUMP=YES ZONEDDECOVP=(C,D)
BMC50471I FORCE_AT=(START,3) SHRLEVEL=REFERENCE
BMC50471I TAPES=NONE
BMC50470I OUTPUT = SYSREC SYSRED SYSREF
BMC50470I UNIT = SYSALLDA SYSALLDA SYSALLDA
BMC50470I VOLCNT = 25 25 25
BMC50470I GDGLIMIT = 5 5 5
BMC50470I GDGEMPTY = NO NO NO
BMC50470I GDGSCRAT = NO NO NO
BMC50470I STORCLAS = NONE NONE NONE
BMC50470I DATACLAS = NONE NONE NONE
BMC50470I MGMTCLAS = NONE NONE NONE
BMC50470I UNITCNT = 0 0 0
BMC50470I SPACE = CYL CYL CYL
BMC50470I PCTPRIM = AUTO AUTO AUTO
BMC50470I MAXPRIM = 0 0 0
BMC50470I MAXSECD = 0 0 0
BMC50470I FILESZPCT 100 100 100
BMC50470I NBRSECD = AUTO AUTO AUTO
BMC50470I DISKRETN = NONE NONE NONE
BMC50470I DISKEXPD = NONE NONE NONE
BMC50470I RETPD = NONE NONE NONE
BMC50470I EXPDT = 99000 99000 99000
BMC50470I TRTCH = NONE NONE NONE
BMC50470I DSNTYPE = NONE NONE PDS
BMC50483I SYSREC VOLUMES=NONE
BMC50483I SYSRED VOLUMES=NONE
BMC50483I SYSREF VOLUMES=NONE
BMC50483I SYSREC DSNAME=&USERID.&TYPE.S&SELNUM
BMC50483I SYSRED DSNAME=&USERID.&TYPE.S&SELNUM
BMC50483I SYSREF DSNAME=&USERID.BMC
BMC50471I DB2 DSNHDECP MODULE SETTINGS:
BMC50471I VERSION = 1110
BMC50471I SUBSYSTEM DEFAULT = DEHJ
BMC50471I CHARACTER SET = ALPHANUM
BMC50471I DATE FORMAT = USA
BMC50471I TIME FORMAT = USA
BMC50471I LOCAL DATE LENGTH = 0
BMC50471I LOCAL TIME LENGTH = 0
BMC50471I DECIMAL POINT = PERIOD
BMC50471I DECIMAL ARITHMETIC = 15
BMC50471I DELIMITER = DEFAULT
BMC50471I SQL DELIMITER = DEFAULT
BMC50471I ENCODING SCHEME = EBCDIC
BMC50471I APPL. ENCODING SCHEME = EBCDIC
BMC50471I MIXED = NO
BMC50471I EBCDIC CCSID = (37,65534,65534)
BMC50471I ASCII CCSID = (819,65534,65534)
BMC50471I UNICODE CCSID = (367,1208,1200)
BMC50471I IMPLICIT TIME ZONE = CURRENT (-05:00)
BMC50028I DB2 MODE = NFM
BMC50471I BMC_BMCUTIL ='BMCUTIL.CMN_BMCUTIL'
BMC50471I BMC_BMCSYNC ='BMCUTIL.CMN_BMCSYNC'
BMC50471I BMC_BMCHIST ='BMCUTIL.CMN_BMCHIST'
BMC50471I BMC_BMCXCOPY ='BMCUTIL.CMN_BMCXCOPY'
BMC50102I *
BMC50102I UNLOAD
BMC50102I ORDER YES
BMC50102I LIMIT 2
BMC50102I FIXEDVARCHAR YES
BMC50102I SELECT DEPT_NO,
BMC50102I EMPL_LNAME,
BMC50102I SSN,
BMC50102I HIRE_DATE,
BMC50102I JOB_CODE,
BMC50102I SALARY_HRLY,
BMC50102I PART_401K
BMC50102I INTO
BMC50102I ,
BMC50102I ,
BMC50102I ,
BMC50102I HIRE_DATE IF NULL VALUE('01/01/1991'),
BMC50102I JOB_CODE CHARACTER(2) IF NULL VALUE(' '),
BMC50102I SALARY_HRLY DECIMAL EXTERNAL(9,2) IF NULL VALUE(999.99),
BMC50102I PART_401K
BMC50102I IF PART_401K ='0' VALUE('N')
BMC50102I IF PART_401K ='1' VALUE('Y')
BMC50102I IF PART_401K = NULL VALUE ('N')
BMC50102I FROM BMC.EMPLS
BMC50102I *
BMC51654I DIRECT YES IN EFFECT
BMC51687I ESTIMATED ROWS FOR TABLE SPACE BMCEXDB.BMCEXATS PART 1 IS 8 FROM DB2STATS
BMC51687I ESTIMATED ROWS FOR TABLE SPACE BMCEXDB.BMCEXATS PART 2 IS 5 FROM DB2STATS
BMC51687I ESTIMATED ROWS FOR TABLE SPACE BMCEXDB.BMCEXATS PART 3 IS 5 FROM DB2STATS
BMC51687I ESTIMATED ROWS FOR TABLE SPACE BMCEXDB.BMCEXATS PART 4 IS 2 FROM DB2STATS
BMC51688I ESTIMATED ROWS FOR TABLE BMC.EMPLS IS 20 FROM DB2STATS
BMC51689I ESTIMATED ROWS FOR SELECT 1 IS 8
BMC50004I UTILINIT PHASE COMPLETE. ELAPSED TIME = 00:00:01
BMC51639I FOR DDNAME 'SYSREC' DSN=ADU.EXAMPLE2.SYSREC,DCB=(RECFM=FB,BLKSIZE=27984,LRECL=53)
BMC50394I UNABLE TO LOCATE SORT WORK DATASETS, DDNAME = 'SORTWKNN'
BMC50894I PAGE EXTERNALIZATION PROCESS STARTING AT 10/28/2013 13:00:10
BMC50650I ESTABLISHING A POINT OF CONSISTENCY FOR:
BMC50651I SPACE BMCEXDB.BMCEXATS PART(0) PSID(0002)
BMC50895I PAGE EXTERNALIZATION PROCESS COMPLETE. ELAPSED TIME = 00:00:00
BMC50041I 0: ZIIP ENABLED (0) USING XBM SUBSYSTEM XBMB
BMC50474I BELOW 16M = 8492K, ABOVE 16M = 1406216K, CPUS = 3
BMC51701I MAX TASKS = 4, MAX PARTITIONS PER TASK = 1, SORTWKS PER TASK = 32, MAX OPEN PARTITIONS PER TASK = 1
BMC51680I UNLOAD LIMIT OF 2 REACHED FOR PARTITION 1
BMC51680I UNLOAD LIMIT OF 2 REACHED FOR PARTITION 4
BMC51680I UNLOAD LIMIT OF 2 REACHED FOR PARTITION 3
BMC50477I 1: PARTITION = 1, ROWS/KEYS = 2, I/O WAITS = 2 ,DDNAME = SYS00005
BMC50477I 3: PARTITION = 3, ROWS/KEYS = 2, I/O WAITS = 2 ,DDNAME = SYS00004
BMC50477I 4: PARTITION = 4, ROWS/KEYS = 2, I/O WAITS = 2 ,DDNAME = SYS00003
BMC50478I 1: RDB LOCK WAITS = 0
BMC51680I UNLOAD LIMIT OF 2 REACHED FOR PARTITION 2
BMC50477I 2: PARTITION = 2, ROWS/KEYS = 2, I/O WAITS = 2 ,DDNAME = SYS00002
BMC50478I 2: RDB LOCK WAITS = 0
BMC50478I 3: RDB LOCK WAITS = 0
BMC50478I 4: RDB LOCK WAITS = 0
BMC50476I DDNAME = SYSREC, I/OS = 4, I/O WAITS = 4, RDB LOCK WAITS = 0
BMC51671I UNLOAD STATISTICS: 2 ROWS PROCESSED FROM PARTITION 1
BMC51686I UNLOADING OF DATASET 'DEHJCAT.DSNDBD.BMCEXDB.BMCEXATS.I0001.A001' READ 3 PAGES
BMC51671I UNLOAD STATISTICS: 2 ROWS PROCESSED FROM PARTITION 2
BMC51686I UNLOADING OF DATASET 'DEHJCAT.DSNDBD.BMCEXDB.BMCEXATS.I0001.A002' READ 3 PAGES
BMC51671I UNLOAD STATISTICS: 2 ROWS PROCESSED FROM PARTITION 3
BMC51686I UNLOADING OF DATASET 'DEHJCAT.DSNDBD.BMCEXDB.BMCEXATS.I0001.A003' READ 3 PAGES
BMC51671I UNLOAD STATISTICS: 2 ROWS PROCESSED FROM PARTITION 4
BMC51686I UNLOADING OF DATASET 'DEHJCAT.DSNDBD.BMCEXDB.BMCEXATS.I0001.A004' READ 3 PAGES
BMC51672I UNLOAD STATISTICS: 8 ROWS PROCESSED FROM SPACE 'BMCEXDB.BMCEXATS', 0 NOT SELECTED, 0 DISCARDED
BMC51674I UNLOAD STATISTICS: 8 RECORDS WRITTEN TO DDNAME 'SYSREC'
BMC51675I UNLOAD STATISTICS: 0 RECORDS DISCARDED DUE TO ERRORS
BMC50041I 0: ZIIP NOT ENABLED (0) USING XBM SUBSYSTEM XBMB
BMC50004I UNLOAD PHASE COMPLETE. ELAPSED TIME = 00:00:01
BMC51639I FOR DDNAME 'SYSCNTL' DSN=ADU.EXAMPLE2.SYSCNTL,DCB=(RECFM=FB,BLKSIZE=3120,LRECL=80)
BMC51801I LOAD TABLE STATEMENTS WRITTEN TO DDNAME 'SYSCNTL'
BMC51810I LOAD DATA INDDN SYSREC
BMC51940I EBCDIC CCSID(37,65534,65534)
BMC51811I INTO TABLE
BMC51809I BMC.EMPLS
BMC51815I (DEPT_NO POSITION(1:4) CHAR (4)
BMC51813I ,EMPL_LNAME POSITION(5:*) VARCHAR
BMC51815I ,SSN POSITION(22:30) CHAR (9)
BMC51815I ,HIRE_DATE POSITION(31:40) DATE EXTERNAL(10)
BMC51815I ,JOB_CODE POSITION(41:42) CHAR (2)
BMC51816I ,SALARY_HRLY POSITION(43:51) DECIMAL EXTERNAL(9,2)
BMC51815I ,PART_401K POSITION(52:52) CHAR (1)
BMC51814I NULLIF BMC_NULL1=X'6F'
BMC51819I , BMC_NULL1 POSITION(53) CHAR(1)
BMC51809I )
BMC50476I DDNAME = SYSCNTL, I/OS = 1, I/O WAITS = 1, RDB LOCK WAITS = 0
BMC50006I UTILITY EXECUTION COMPLETE, RETURN CODE = 0
Related topic