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 --