IBUFNO= System Option

Specifies an optional number of extra buffers to be allocated for navigating an index file.
Valid in: Configuration file, SAS invocation, OPTIONS statement, SAS System Options window
Category: Files: SAS Files
PROC OPTIONS GROUP= SASFILES
Default: 0
Note: This option can be restricted by a site administrator. For more information, see Restricted Options.

Syntax

IBUFNO=n | nK | nM | nG | nT | hexX | MIN | MAX

Syntax Description

n | nK | nM | nG | nT
specifies the number of extra index buffers to be allocated in multiples of 1 (bytes); 1,024 (kilobytes); 1,048,576 (megabytes); 1,073,741,824 (gigabytes); or 1,099,511,627,776 (terabytes). For example, a value of 8 specifies eight buffers, and a value of 3k specifies 3,072 buffers.
Restriction:Maximum value is 10,000.
hexX
specifies the number of extra index buffers as a hexadecimal value. You must specify the value beginning with a number (0–9), followed by an X. For example, the value 2dx specifies 45 buffers.
MIN
sets the number of extra index buffers to 0. This is the default.
MAX
sets the maximum number of extra index buffers to 10,000.

Details

An index is an optional SAS file that you can create for a SAS data file in order to provide direct access to specific observations. The index file consists of entries that are organized into hierarchical levels, such as a tree structure, and connected by pointers. When an index is used to process a request, such as for WHERE processing, SAS does a binary search on the index file and positions the index to the first entry that contains a qualified value. SAS uses the value's identifier to directly access the observation that contains the value. SAS requires memory for buffers when an index is actually used. The buffers are not required unless SAS uses the index, but they must be allocated in preparation for the index that is being used.
SAS automatically allocates a minimal number of buffers in order to navigate the index file. Typically, you do not need to specify extra buffers. However, using IBUFNO= to specify extra buffers could improve execution time by limiting the number of input/output operations that are required for a particular index file. However, the improvement in execution time comes at the expense of increased memory consumption.
Note: Whereas too few buffers allocated to the index file decrease performance, over allocation of index buffers creates performance problems as well. Experimentation is the best way to determine the optimal number of index buffers. For example, experiment with ibufno=3, then ibufno=4, and so on, until you find the least number of buffers that produces satisfactory performance results.

See Also

Understanding SAS Indexes in SAS Language Reference: Concepts
System Options: