Example 3: Iterative tuning analysis

In this example, PSSR is used to investigate how potential DBD changes affect randomizer performance.

This kind of analysis is usually done in the following situation:

  • Some performance degradation is being experienced.
  • A database reorganization does not eliminate the poor performance.
  • Poor randomization is the suspected cause of the bad performance.

PSSR can model the randomization process without actually creating a reorganized database. It prints the following two reports:

  • Assigned Roots per Block, which tells how many root segments were randomized to each database block.
  • Assigned Roots per RAP, which tells how many root segments were randomized to each RAP.

You can find out how many root segments are randomized to each block or RAP from these reports.

Note: Although they are much more compact than the Record Sizes report, these reports can still be quite large. They each contain approximately 5000 - 6000 entries on each page. A large database could result in a very large printed report. For example, assume that your database root addressable area is 250,000 blocks long, with two RAPs in each block. The Assigned Roots per Block report will be nearly 500 pages long, and the Assigned Roots per RAP report will be nearly 100 pages long.

Having well-distributed root segments is required to obtain optimum performance from an HDAM database. You want to minimize the number of physical input/output requests needed to access a segment. Having each root segment stored in its home block is a major factor. If your root segments are fairly evenly distributed throughout the root addressable area, it should minimize the number of roots that are not stored in their home block.

Database characteristics usually change over time. This can sometimes contribute to degraded performance. Some databases might require periodic analysis and changing of their randomization characteristics in order to maintain best performance.

You can use the PSSR randomizer-performance reports to evaluate how well your randomizer is distributing your root segments. By running PSSR iteratively, you can judge potential DBD changes without having to create a new version of the database. After using the PSSR to determine better values for the DBD randomization parameters, you can reorganize your database using those parameters.

Example of steps for tuning analysis

This example uses DBD overrides (on the PSSR control statement in the CTL data set) to model potential DBD changes. PSSR is run iteratively, changing the DBD overrides on each iteration until a satisfactory randomization is obtained. The following steps are required:

  1. Unload the database with IMS HD Reorganization Unload utility or with an equivalent program
  2. Run PSSR several times, each time with different DBD overrides

Once the new DBD parameters are selected, the database should be reorganized as described in Example 1: Normal reorganization (Changing root addressable area).

By monitoring the performance of your randomizing routines using PSSR (using PSSR, the HD Tuning Aid utility of IMS High Performance Pointer Checker, or both), you can detect conditions that might affect database performance. Proper analysis and tuning can then keep your databases in the best condition.

Unload the database with IMS HD Reorganization Unload utility or with an equivalent program

Unload the database with IMS HD Reorganization Unload utility or an equivalent program, such as IMS High Performance Unload for z/OS® unload utilities.

In this scenario, the database is assumed to be unloaded as in Example 1: Normal reorganization (Changing root addressable area) (see Figure 1 for the JCL). It is a standard database unload execution.

Run PSSR several times, each time with different DBD overrides

This step prints the randomization reports. It consists of five executions of PSSR (see Figure 1). The only difference between the five cases is the PSSR control statement.

  1. This case uses the DBD without overriding any parameters. It represents the database condition that this analysis is trying to improve. All PSSR reports (including the potentially large Record Sizes report) are printed.
  2. Here the number of blocks in the root addressable area is changed to 100 (column 20), and the number of RAPs in one block is changed to 4 (column 29). The leading zeros for these two control statement fields are required. The dash (-) in column 62 prevents the printing of both Record Sizes reports. These were printed in case 1, and there is no need to reprint them. (Modifying DBD parameters cannot change the size of a database record.)
  3. The randomizing module is changed to DFSHDC30 (column 11), the number of blocks in the root addressable area is changed to 100 (column 20), and the number of RAPs in one block is changed to 4 (column 29). The Record Sizes reports are not printed (column 62).
  4. The randomizing module is changed to DFSHDC20 (column 11), the number of blocks in the root addressable area is changed to 200 (column 20), and the number of RAPs in one block is changed to 1 (column 29). The Record Sizes reports are not printed (column 62).
  5. The randomizing module is changed to DFSHDC10 (column 11), the number of blocks in the root addressable area is changed to 400 (column 20), and the number of RAPs in one block is changed to 3 (column 29). The Record Sizes reports are not printed (column 62).
Figure 1. Example 3: DFSORT (PSSR) JCL
//PHYBLK1 EXEC FABSPSSR
//STEPHD.CTL DD *
ORDHDM
/*
//STEPHD.SYSIN DD *
  SORT     FIELDS=(5,20,BI,A),FILSZ=E9400000
  MODS     E15=(FABSRT15,50000,IMS2,N),E35=(FABSRT35,50000,IMS2,N)
  END
/*
//*---------------------------------------------------------------
//PHYBLK2 EXEC FABSPSSR
//STEPHD.CTL DD *
ORDHDM             0000100  004                              -
/*
//STEPHD.SYSIN DD *
  SORT     FIELDS=(5,20,BI,A),FILSZ=E9400000
  MODS     E15=(FABSRT15,50000,IMS2,N),E35=(FABSRT35,50000,IMS2,N)
  END
/*
//*---------------------------------------------------------------
//PHYBLK3 EXEC FABSPSSR
//STEPHD.CTL DD *
ORDHDM    DFSHDC30 0000100  004                              -
/*
//STEPHD.SYSIN DD *
  SORT     FIELDS=(5,20,BI,A),FILSZ=E9400000
  MODS     E15=(FABSRT15,50000,IMS2,N),E35=(FABSRT35,50000,IMS2,N)
  END
/*
//*---------------------------------------------------------------
//PHYBLK4 EXEC FABSPSSR
//STEPHD.CTL DD *
ORDHDM    DFSHDC20 0000200  001                              -
/*
//STEPHD.SYSIN DD *
  SORT     FIELDS=(5,20,BI,A),FILSZ=E9400000
  MODS     E15=(FABSRT15,50000,IMS2,N),E35=(FABSRT35,50000,IMS2,N)
  END
/*
//*---------------------------------------------------------------
//PHYBLK5 EXEC FABSPSSR
//STEPHD.CTL DD *
ORDHDM    DFSHDC10 0000400  003                              -
/*
//STEPHD.SYSIN DD *
  SORT     FIELDS=(5,20,BI,A),FILSZ=E9400000
  MODS     E15=(FABSRT15,50000,IMS2,N),E35=(FABSRT35,50000,IMS2,N)
  END
/*