[bit.listserv.sas-l] SAS/AF performance CMS using 5.18

SASMAINT@SUVM.BITNET (Nelson R. Pardee) (01/16/90)

This is a bit long, but I tried to provide all the relevant information.

I recently wrote my first SAS/AF application, an inhouse workshop registration
system. We teach 200-400 students in about 25 sections every term, and
need class lists, the ability to close full sections, etc. The system is
simple, and works as follows:
 -enter student ID #;
 -look it up, and grab existing record (if any)
 -display FSEDIT screen to enter registration data: personal info & workshop
  # and section # (we run multiple sections on various topics)
  (this screen has one page of data entry and 2 of help info). Operates
  on a one observation dataset.
 -run a 200 line data step to
   *check the data entry
   *look up workshop/section information (date, time, etc.)
   *check if section full
 -redisplay entry screen with date, time, etc., displayed, plus any appropriate
  error messages
 -make corrections (then recheck data), or finalize registration
 -print registration coupon

AF screens:
 -screen 0: main menu
 -screen 1: input ss# and branch to screen 2
 -screen 2: invokes a macro which
            -calls fsedit
            -runs the data checking step
            -either runs an add routine, coupon printer, branch to screen 1
                    runs a delete routine or cancel, branch to screen 1
                    branches to screen  3
 -screen 3: branch to screen 2 (I couldn't make screen 2 branch to itself;
            maybe I did something wrong)

The problem: tons of I/O.  The datasets involved are tiny:
 *  1 obs,    60 vars
 * 14 obs,    40 vars
 * 1-400 obs, 27 vars (this includes one obs for each registrant, so it grows)
and I'm doing very little reading and writing of them.

Under optimal circumstances, it takes 20 secs to go from one screen to
another, e.g., from ID# input to the registration FSEDIT screen, from the
registration FSEDIT screen to an updated FSEDIT screen (data step called
in between), from the FSEDIT screen to coupon printing. Under moderate
load, it goes to 2 minutes (yes, we realized that the popularity of the
volume where the data resides affects everything).

I have (estimated) about 50 macro vars lying around, one macro.

I've called SAS, and they were courteous and spent some time with me,
but no good suggestions. Any suggestions from some AF experts?
 --Nelson R. Pardee,   Academic Computing Services,  Syracuse University--
 --120 Hinds Hall, Syracuse, NY 13244-1190 USA   (315)443-4505          --
 --Bitnet: SASMAINT@SUVM     Internet: SASMAINT@SUVM.ACS.SYR.EDU        --