SQL PA Batch JCL

You can use this sample JCL for batch processing of your SQL PA job.

The sample JCL in the following figure shows the allocations necessary to run Db2 SQL Performance Analyzer under a sample user ID of TDT690. It includes an optional first step that deletes information left after a previous run.

This sample JCL is not intended to be used with generic IDs. To use generic IDs in batch, use the BATCH command to generate the JCL. If generic IDs are used incorrectly in batch, the IDs might not be properly freed in the REGISTRY. See Resetting the Db2 SQL Performance Analyzer REGISTRY if no more generic IDs are available.

//JOBNAME  JOB (ACCTG),'SQL PA 520',CLASS=E,MSGCLASS=X,NOTIFY=USERID    
//**********************************************************************
//*  S Q L  P A  - -   S Q L   P E F O R M A N C E   A N A L Y Z E R  *
//**********************************************************************
//*                                                                     
//* PROGRAM PROPERTY OF IBM CORPORATION   PRODUCT NUMBER 5697-W51       
//* (C) COPYRIGHT 2000-2015 BY IBM        (C) 1993-2005 BY IMSI         
//* SQL PA IS AN IBM LICENSED PROGRAM     ALL RIGHTS RESERVED WORLDWIDE 
//*                                                                     
//* ALL Db2 RELEASES USE PROGRAM 'ANLSQLPA'            
//*                                                                     
//**********************************************************************
//* STEP 0: DELETE THE PREVIOUS RUN'S PERMANENT REPORTS, IF NECESSARY   
//*                                                                     
//ANLSTEP0 EXEC PGM=IEFBR14                                             
//GOAWAY1  DD DSN=&SYSUID..ANLREP.RPT,DISP=(MOD,DELETE),                
//         SPACE=(TRK,(1,1),RLSE)                                       
//GOAWAY2  DD DSN=&SYSUID..QTRACE.RPT,DISP=(MOD,DELETE),                
//         SPACE=(TRK,(1,1),RLSE)                                       
//GOAWAY3  DD DSN=&SYSUID..QLIMIT.RPT,DISP=(MOD,DELETE),                
//         SPACE=(TRK,(1,1),RLSE)                                       
//GOAWAY4  DD DSN=&SYSUID..ANLOUT.RPT,DISP=(MOD,DELETE),                
//         SPACE=(TRK,(1,1),RLSE)                                       
//*                                                                     
//**********************************************************************
//*                                                                     
//ANLSTEP1 EXEC PGM=ANLSQLPA,REGION=0M                                  
//*                                                                     
//STEPLIB  DD DSN=SYSX.ANL520.SANLLOAD,DISP=SHR      SQL PA             
//         DD DSN=SYS1.CEE.SCEERUN,DISP=SHR          LE                 
//         DD DSN=SYS1.DSN###.SDSNLOAD,DISP=SHR      Db2                
//*                                                                     
//*SNTRACE DD SYSOUT=*                               TRACE              
//*                                                                     
//ANLCNTL  DD DSN=SYSX.ANL520.SANLPARM(SSIDCNTL),DISP=SHR                
//ANLPARM  DD DSN=SYSX.ANL520.SANLPARM(SSIDPARM),DISP=SHR                
//*******                                                               
//ANLWORK  DD DSN=&&ANLWORK,DISP=(,DELETE,DELETE),                      
//       SPACE=(CYL,(5,1),RLSE),DCB=(LRECL=80,RECFM=FB,BLKSIZE=4000)    
//*******                                                               
//ANLIN    DD DSN=SYSX.ANL520.SANLSQL(ANLSTEST),DISP=SHR                
//*******                                                               
//ANLOUT   DD DSN=&SYSUID..ANLOUT.RPT,DISP=(,CATLG,DELETE),             
//       SPACE=(CYL,(1,1),RLSE),DCB=(LRECL=80,RECFM=FB,BLKSIZE=9040)    
//*                                                                     
//SYSPRINT DD SYSOUT=*,DCB=LRECL=133
//ANLPRINT DD SYSOUT=*,DCB=LRECL=133                                     
//*
//**********************************************************************
//* ANLREP IS THE EXPLAIN REPORT: YOU MAY WISH TO NAME IT SO THAT       
//* YOU CAN RECOGNIZE WHICH INPUT SQL PRODUCED THIS PARTICULAR REPORT.  
//*                                                                     
//* QTRACE IS THE DETAILED TRACE REPORT: WRITTEN WHEN "ALL" REPORTS     
//* ARE REQUESTED.  CONTAINS A MORE DETAILED EXECUTION FORECAST.        
//*                                                                     
//* QLIMIT IS THE QUERY LIMITS REPORT: IT CONTAINS A FLAG FOR EACH      
//* LIMIT EXCEEDED, PLUS COST VALUES, ONE LINE PER QUERYNO.             
//*                                                                     
//**********************************************************************
//*                                                                     
//ANLREP   DD DSN=&SYSUID..ANLREP.RPT,DISP=(,CATLG,DELETE),             
//     SPACE=(CYL,(1,1),RLSE),DCB=(LRECL=132,RECFM=FB,BLKSIZE=23760)    
//QTRACE   DD DSN=&SYSUID..QTRACE.RPT,DISP=(,CATLG,DELETE),             
//     SPACE=(CYL,(1,1),RLSE),DCB=(LRECL=120,RECFM=FB,BLKSIZE=23520)    
//QLIMIT   DD DSN=&SYSUID..QLIMIT.RPT,DISP=(,CATLG,DELETE),             
//     SPACE=(TRK,(1,1),RLSE),DCB=(LRECL=120,RECFM=FB,BLKSIZE=23520)    
//*