If you're really concerned about the read performance, you could simply define three additional subfiles. Load the first (default) when the pgm starts, then switch the subfile you're displaying based on the user's selection. If the user selects a view that hasn't been initialized yet, go out and do the read at that time, otherwise just keep alternating the sfile that is displayed.
Another alternative, and one that I have used a few times in the past, is to only use a single input file regardless of the number of logical views that the user can choose from. The initial subfile load is performed using the default sort order. When the user requests a sort on a specific column, I just perform a standard shell sort right in the program.
For what it's worth, I don't think that you are dealing with enough records for it to really be much of an issue which method you choose.
----- Original Message -----