This article answers
following questions:
ü What
are different SAP Buffer types?
ü What
are the functions of various buffers in SAP?
===========================================
There are following seven
main groups of buffers found in shared memory.
v Repository
Buffers
v Table
Buffers
v Program
Buffer
v SAPgui
Buffers
v Roll
and Paging Buffers
v SAP
Calendar Buffer
v SAP
Cursor Cache
1)
Repository
Buffers:
The Repository
buffer is mainly known as the nametab buffer (NTAB), but it is also known as
the ABAP Dictionary buffer.
This buffer contains the table
and field definitions that are activated in the SAP System. An entry is made in
the Repository buffer when a mass activator or a user (using the ABAP
Dictionary, Transaction SE11) requests to activate a table. The corresponding
name table is then generated from the information that is managed in the
Repository.
The description of
a table in the Repository is distributed among several tables (for field
definition, data element definition and domain definition). This information is
summarized in the name table. The name table is saved in the following database
tables:
·
DDNTT (table definitions)
·
DDNTF (field descriptions)
The Repository
buffer consists of four buffers in shared memory, one for each of the
following:
Table definitions
|
TTAB buffer
|
Table DDNTT
|
Field descriptions
|
FTAB buffer
|
Table DDNTF
|
Initial record layouts
|
IREC buffer
|
Contains the record layout initialized depending on the
field type
|
Short Nametab
|
SNTAB buffer
|
A short summary of TTAB and FTAB buffers
|
The Short nametab
and Initial record layouts are not saved in the database. Instead, they are
derived from the contents of tables DDNTT and DDNTF.
When access to a
table is requested, the database access agent embedded in each work process
first reads the Short nametab buffer for information about the table. If the
information is insufficient (for example, the SELECT statement uses a
non-primary key) it accesses the Table definitions buffer and then the Field
descriptions buffer. By reading the Repository buffers, the database access
agent knows whether the table is buffered or not. Using this information, it
accesses the table buffers (partial buffer or generic buffer) or the database.
The IREC buffer is read:
·
When a REFRESH command is executed in an ABAP program
·
At an INSERT command, when a record is created in the buffers
before the data is inserted and the fields are initialized with the values found
in IREC buffer
You can set the buffers mentioned
above by editing the parameters in the instance profile.
2) Table Buffers
There are two kinds
of table buffers
·
Partial table buffers: Stores single table entries, that is, one
record with its field values
·
Generic table buffers: Stores a range of table entries, that is,
a range of records with their field values. The generic table buffer can also
store all the entries (records) in a table. This is known as resident (or full)
buffering
Whether a table is
partially buffered, generically buffered, or fully buffered depends on its
attribute settings. You can change the buffer attributes of a table using
Transaction SE13
3) Program Buffer:
It is also known as SAP Executable
buffer or ABAP buffer or PXA (Program Execution Area). Stores the compiled
executable versions of ABAP programs (loads).The contents of this buffer are
stored in tables D010L (ABAP loads), D010T (texts) and D010Y (symbol table).The
program buffer has a hash structure and supports LRU (Least Recently Used)
displacement.
4) SAPgui Buffers:
There are two kinds of SAPgui buffers
·
Presentation buffers: Also known as Screen buffer or Dynpro
buffer. Stores the generated screens (DYNPRO loads).The presentation buffer is
adjusted by changing its instance profile parameters
·
Menu buffers: Also called as CUA buffer. Stores objects from the
SAPgui. For example, menus, pushbutton definitions. These objects are from
tables D345T (CUA texts) and D342L (CUA loads). The buffer has directory
structure and supports LRU displacement. The menu buffer is adjusted by
amending its instance profile parameters
5) Roll and Paging Buffers
The roll and paging buffers are the preferred working area
of the roll and paging areas for an instance (application server). The
remaining area is located on disk as roll and paging files. The user context is
stored in the extended memory and the roll area (when the job is "rolled
out" of a work process). The paging area stores special data for the ABAP
processor, while the extended memory stores a large portion of the internal
tables of a program.
You set the roll and paging buffers,
as well as the extended memory using the parameters in the instance profile
6) SAP Calendar Buffer
The SAP calendar buffer stores all defined factory and
public holiday calendars. Calendars are stored in the database tables TFACS and
THOCS. The buffer has a directory structure. This means that if the shared
memory is configured too small, only the required data is loaded; there is no
LRU displacement of the contents of the buffer. You can change the calendar
buffer by editing the parameter in the instance profile
7) SAP Cursor Cache
The SAP cursor
cache helps to improve system performance by reducing the number of parsing of
SQL statements; it is database-dependent. The SAP cursor cache is only slightly
different for Oracle, Informix and SAP DB. It is totally different for AS/400
and MS SQL Server.
There are two types of cursor caches:
·
Statement ID cache
·
Statement cache
Changing the SAP
cursor cache parameter value in the default profile will affect other areas as
well. You are therefore advised not to tune it without the recommendation of a
qualified SAP expert