Previous Page | Next Page

Optimizing Performance

Some SAS System Options That Can Affect Performance


MAUTOSOURCE and IMPLMAC

The MAUTOSOURCE and IMPLMAC SAS system options affect the operation of the SAS autocall macro facility, and they interact in a way that you should be aware of.

Specifying IMPLMAC enables you to use statement-style macros in your SAS programs. With IMPLMAC in effect, each SAS statement is potentially a macro, and the first word (token) in each statement must be checked to determine whether it is a macro call.

When IMPLMAC is in effect without MAUTOSOURCE, no special checking takes place until the first statement-style macro is compiled. When both IMPLMAC and MAUTOSOURCE are in effect, however, this checking is done unconditionally. The initial occurrence of a word as the first token of a SAS statement results in a search of the autocall library. There can be a significant number of directory searches, especially when a large DATA step is compiled, in addition to the CPU time that is consumed by maintaining and searching the symbol table.

The combination of MAUTOSOURCE and IMPLMAC can add 20% to CPU time and 5% to I/O for a non-trivial job. Therefore, for best performance, leave NOIMPLMAC as the installation default.


REXXMAC

When SAS encounters an apparent SAS statement that it does not recognize, it typically generates a "statement is not valid" error message in the SAS log. However, when the REXXMAC system option is in effect, SAS passes the first word in the apparent statement to the z/OS REXX processor, which looks for a member by that name in the SASREXX library. Hence, a mistyped statement could have unintended results and could have a negative impact on performance. For more information, see REXXMAC System Option: z/OS and REXXLOC= System Option: z/OS.


SPOOL/NOSPOOL

The SPOOL system option is appropriate when you are running SAS interactively, without using the windowing environment. When SPOOL is in effect, SAS input statements are stored in a WORK library utility file; they are retrieved later by %INCLUDE and %LIST commands. SAS is shipped with SPOOL as the default setting for interactive sessions, but you might want to consider resetting it to NOSPOOL for batch jobs. In a batch job that has a large number of input lines, NOSPOOL can reduce I/O by as much as 9%.

Previous Page | Next Page | Top of Page