There's an easy way to speed up certain types of purge programs. You can use this technique if the file you're purging records from has any dependent logical files attached to it. If so, you should consider using the Remove Member (RMVM) command to remove the logical file members before running the purge job and then adding them back in afterward with the Add Logical File Member (ADDLFM) command.
The reason this can improve the performance of purge jobs is that, every time a record is deleted, access paths for dependent logical files are also updated. So, if you're deleting a large number of records, you would want to remove any dependent logical file members, run the purge program, reorganize the physical file to drop the deleted records, and then re-add the logical file members. If the purge program accesses the file through a logical file, don't remove the member for that specific logical file.
It is not necessary to delete the logical files; just remove the members. The object definition will remain on disk. When you add the logical file member back in, the access path will be re-created. I sped up a month-end transaction file purge from 12 hours to 7.5 hours with this technique.
- Andre Nortje