Pages

Monday, 13 June 2016

SAP Buffer types


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


 

3 comments:

  1. Thanks for sharing this Informative content. Well explained. Got to learn new things from your Blog - V Sahana

    ReplyDelete
  2. great bro thanks alot...

    ReplyDelete
  3. Thanks for sharing good stuff.

    ReplyDelete

Please provide your valuable feedback: