session or by more than one statement or procedure within a single session, the level of
locking determines how many sessions, procedures, or statements can read and write to
the file at the same time. For example, with the FSEDIT procedure, you can request two
windows on the same SAS data set in one session. Some engines support this capability;
others do not.
The levels that are supported are record level and member (data set) level. Member-level
locking enables Read access to many sessions, statements, or procedures. This locking
restricts all other access to the SAS data set when a session, statement, or procedure
acquires update or output access. Record-level locking enables concurrent Read access
and Update access to the SAS data set by more than one session, statement, or
procedure. This locking prevents concurrent Update access to the same observation. Not
all engines support both levels.
By default, SAS provides the greatest possible level of concurrent access, while
guaranteeing the integrity of the data. In some cases, you might want to guarantee the
integrity of your data by controlling the levels of Update access yourself. Use the
CNTLLEV= data set option to control levels of locking. CNTLLEV= enables locking at
three levels:
• library
• data set
• observation
Here are situations in which you should consider using the CNTLLEV= data set option:
• Your application controls access to the data, such as in SAS Component Language
(SCL), SAS/IML software, or DATA step programming.
• You access data through an interface engine that does not provide member-level
control of the data.
For more information about the CNTLLEV= data set option, see SAS Data Set Options:
Reference.
You can also acquire an exclusive lock on an existing SAS file by issuing the LOCK
global statement. After an exclusive lock is obtained, no other SAS session can read or
write to the file until the lock is released. For more information about the LOCK
statement, see SAS Statements: Reference.
Note: SAS products, such as SAS/ACCESS and SAS/SHARE, contain engines that
support enhanced session management services and file locking capabilities.
Indexing
A major processing feature of SAS is the ability to access observations by the values of
key variables with indexes. See “Understanding SAS Indexes” on page 638 for more
information about using indexes for SAS data files. Note that not all engines support
indexing.
Engine Characteristics 743