Buffering Data for Base SAS Tables

For Base SAS tables, you might be able to make performance improvements by performing these tasks:
  • tuning the size of table pages on disk by using the BUFSIZE= system option. SAS uses the BUFSIZE= option to set the permanent page size for the SAS table. The page size is the amount of data that can be transferred for an I/O operation to one buffer. If you know that the total amount of data is going to be small, you can set a small page size, so that the total table size remains small and you minimize the amount of wasted space on a page. Large tables that are accessed sequentially benefit from larger page sizes because sequential access reduces the number of system calls that are required to read the table.
  • adjusting the number of open page buffers when the SAS table is processed. Increasing the value of the BUFNO= option can improve performance by enabling applications to read more data with fewer passes; however, your memory usage increases. You must determine the optimal value for your needs.
Besides specifying SAS system options on the command line or inside a SAS program with the OPTIONS statement, you can set the BUFSIZE= and BUFNO= system options in SAS Data Integration Studio. For example, you can set these System Options in the properties window for a table loader transformation.
Table Loader Properties Dialog Box
Table Loader Properties dialog box showing system options BUFNO=16 and BUFSIZE=4K
For more information about the BUFSIZE= and BUFNO= options, see the SAS Data Set Options: Reference and the documentation for your operating environment.
Note: In addition, the SASFILE statement enables you to store the entire Base SAS table in memory, and the table remains open until you close it because SASFILE caches the data and the open request. For more information about the SASFILE statement, see the SAS Statements: Reference.