Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

BUFFERING

Former Member
0 Kudos

hi,

can anyone explain me about buffer concept in data dictionary an d which scenario we r going to use thi s concept

thanks

uday kiran

14 REPLIES 14

ravisankara_varaprasad
Active Participant
0 Kudos

Hi ,

Table buffering concept will be used to apply the shared access of the table entries.

the types are as below.

Single-record buffering

With this kind of buffering, only the records of a table which are actually accessed are loaded into the buffer.

This kind of buffering requires less storage space in the buffer than full buffering. However, greater organization is necessary and considerably more database accesses are necessary for loading.

If an as yet unbuffered record is accessed using SELECT SINGLE, a database access occurs to load the record. If the table does not contain a record for the specified key ('no record found'), this record is noted as nonexistent in the buffer. If a further attempt is made to access this record using SELECT SINGLE, a renewed database access can be avoided.

When should single-record buffering be selected?

For large tables where there are frequent single-record accesses (using SELECT SINGLE ...). The size of the records being accessed should be between 100-200 KB.

For comparatively small tables for which the access range is large, it is normally advisable to opt for full buffering. Only one database access is required to load such a table for full buffering, while single-record buffering calls for a very large number of table accesses.

(ii) Generic buffering

In a read access to a record of a generically buffered table, all the records whose left-justified part of the key (generic area) corresponds are loaded into the buffer.

If this type of buffering is selected, the generic area must be defined by specifying a number n of key fields. The first n key fields of the table then define the generic key.

The number of key fields to be entered must lie between 1 and the number of key fields -1. For example, only values between 1 and 5 are permitted for a table with 6 key fields. The client field is included here.

When should generic buffering be selected?

A table should be buffered generically if usually only certain areas of the table are required. The individual generic areas are treated like independent tables that are fully buffered. Refer also to the text on complete buffering.

The generic key area should be selected so that the generic areas are not too small to prevent too may generic areas being produced. If there are only a few records for each generic area, it is more efficient to use full buffering.

Generic buffering only makes sense if the table is accessed by a specified generic key. If, when an access takes place, a field of the generic key is not supplied with a value, the buffer is ignored and the records are read directly from the database.

Language-specific tables are an example of good use of generic buffering (with the language key field as generic key area).

(iii) Full buffering

With full buffering, either the complete table or none of the table is in the buffer. If a read access is made to a record, all records of the table are transferred to the buffer.

When should you select full buffering?

For tables up to 30 KB in size. If a table is accessed frequently, but all accesses are read accesses, this value can be exceeded.

For larger tables where large numbers of records are frequently accessed. However, if the application program is able to formulate an extremely selective WHERE condition using a database index, it may be advisable to dispense with full buffering.

For tables with frequent accesses to data not contained in the table. Since all records are contained in the buffer, a quick decision can be made as to whether or not the table contains a record for a specific key.

When considering whether a table should be fully buffered, you should take three aspects into account: the size of the table, the number of read accesses, and the number of write accesses. Tables best suited to full buffering are small, frequently read, and rarely updated.

Hope this give you the required information.

Kind Regads,

Ravi Sankar.Z

Former Member
0 Kudos

Hi Uday,

In the technical settings, we get 3 options regarding buffering:

Buffering not permitted: It is used when the programs always need the most recent data or table is changed too frequently.

Buffering permitted but not activated: In this option, buffering is permitted but is not activated. It can be activated at the customer system at any time if required.

Buffering activated: The table will be buffered in this option.

One has to specify the buffering type.

Buffering types: It defines table records to be loaded into the buffer when a table record is accessed.

Full Buffering: In this, all the records of a table are loaded into the buffer when one record of the table is accessed.

Generic Buffering: When the record of the table is accessed, all the records having this record in the generic key fields are loaded into the buffer.

Single-record Buffering: It means only the records that are accessed are loaded into the buffer.

<removed_by_moderator>

Regards

Natasha Garg

Edited by: Julius Bussche on Jul 14, 2008 5:25 PM

Former Member
0 Kudos

Hi,

Buffering a table improves the performance when accessing the data records contained in the table.

When the table is set as buffering allowed ,the table buffers reside locally on each application server in the system. The data of buffered tables can thus be accessed directly from the buffer of the application server. This avoids the time-consuming process of accessing the database.

That means every time when you are accessing the table records then no need to go for Database,Records are fetched from the buffer.

If the table changed which is buffered then that time again the table records are fetched from DB at that time and the new records will be stored in buffer.

For futher information just read SAP help once. There this concept is explained very clearly.

It will be help to you to understand .

Regards,

Rajitha.

Former Member
0 Kudos

hi,

Buffering is a method to retrieve data from database table in SAP R/3 system. Here we store data to the database buffer in the application which have once been retrieved from the database table and next time if the same data is asked for system fetch it from the buffer ,not from the database table. thus multiple time database table access is prevented.

Check the link one by one for further info

[http://help.sap.com/saphelp_nw04/helpdata/de/47/12ba1cd9ed584a957e5cf6bf243625/content.htm]

[http://help.sap.com/saphelp_nw04/helpdata/de/f1/f5c2deca023d4bb7dfeaf5eda45307/content.htm]

[http://help.sap.com/saphelp_nw70/helpdata/en/f7/e4c5a5a84a11d194eb00a0c929b3c3/content.htm]

[http://help.sap.com/saphelp_46c/helpdata/en/f7/e4c5a8a84a11d194eb00a0c929b3c3/content.htm]

[http://help.sap.com/saphelp_46c/helpdata/en/cf/21f2b9446011d189700000e8322d00/content.htm]

[http://help.sap.com/saphelp_46c/helpdata/en/cf/21f26b446011d189700000e8322d00/content.htm]

Anirban Bhattacharjee

Former Member
0 Kudos

Hi uday,

Visit this link

and you will get very important knowledge on buffering

http://abapprogramming.blogspot.com/2007/11/buffering-in-sap-abap.html

Best Regards

Anup.

Former Member
0 Kudos

Hi Uday.

Concept of buffering:

It is the process to ensure the efficient data transfering from the SAP system to The database.

Buffering improves the performance of database for retrieving data from DB to the system.

There are altogether 2 kinds of Buffering mentioned by SAP:

1. Table buffering - Ensures the fetching of records from database tables into work area of the system.

Especially when it is long data transfer between clients.

Also, the load is minimized on the database and hence on the system which is a very important business aspect.

2. Database request buffering:

By using some condition specific OPEN SQl query which is efficient in utilizing or fetching the data records from database.

For detailed information on technical steps refer:

For table buffering:

http://help.sap.com/saphelp_nw70/helpdata/EN/cf/21f2ac446011d189700000e8322d00/frameset.htm

For Database request buffering:

http://help.sap.com/saphelp_47x200/helpdata/en/3d/935324d37011d194ba00a0c94260a5/content.htm

Regards

Harsh

Edited by: Harsh Dave on Jul 12, 2008 11:12 AM

Former Member
0 Kudos

hi,

buffer is lilke a temproary storage which stores ur recently accesed data. Buffering can be very useful when ur table has large number of records.

let say you have created a query on a table which extracts 100 records from a table. next time when you will again execute the same query, it will take less execution time as data will be in buffer alredy. so buffering improves performance.

now u can choose diferent kind of buffering according to your requirement ie. , fully buffering , semi buffering ( only few records are put in buffer) and buffering with restrictions.

Former Member
0 Kudos

Hi,

adding to my above link in nuttshell,

buffer is nothing but a memory area. table is buffered means that table information is available on application server. when you call data from database table it will come from application server.

transperent and pooled tables are buffered. cluster tables can not buffered.

Anirban Bhattacharjee

Former Member
0 Kudos

Hi,

I think the below link will help you to understand the buffering concept.

http://help.sap.com/saphelp_nw04s/helpdata/en/82/b63541b9cc4c0de10000000a1550b0/frameset.htm

Thanks,

Khushbu.

Former Member
0 Kudos

hi uday,

Table buffering / Buffering is an important feature of Open SQL. The table buffer is located between the application and the database. Its goal is to cache portions of a database table in the application server to reduce database load and network communication.

The limitation of buffering is that changes made to buffered data within one server process should be propagated to all other nodes to avoid inconsistencies in the remote buffers.

THe following links would give you a detailed info on types of buffering and buffer synchronization (a very important concept to know properly about buffering):-

_Buffering_

https://help.sap.com/saphelp_nw04/helpdata/en/f1/f5c2deca023d4bb7dfeaf5eda45307/content.htm

Buffer synchronization

http://help.sap.com/saphelp_nw04s/helpdata/en/c4/3a6dd5505211d189550000e829fbbd/content.htm

http://help.sap.com/saphelp_46c/helpdata/en/cf/21f25e446011d189700000e8322d00/content.htm

Best of luck,

Bhumika

Former Member
0 Kudos

Hii!

Check out this link

http://www.blogtoplist.com/software/blogdetails-23465-2.html

Regards

Abhijeet Kulshreshtha

Edited by: Abhijeet Kulshreshtha on Jul 11, 2008 8:34 AM

Former Member
0 Kudos

Hi Uday.

Buffering Concept in Tables:

Buffering is required to enhance/improve the performance of database tables.

Location of Buffers: Application server.

How the Buffers works?

Buffer tables are created on buffers and the data is stored in these tables.

When required this data is accessed directly without direct contact with the Database.

Hence, Time is saved and lesser load on the database.

Main Use:

When there is transfer of large records/ accessing of large records between different clients, the time consuming process is

minimized by buffers as well as loads minimized for efficient and secure transfer.

Now, to decide the kind of buffering required for each application, we have the types of buffering as per the requirements.

Buffering is classified into 3 categories:

1. Full buffering:

This is considered when there is a condition when comparatively less records are to be fetched.

This helps in fast transfer as the complete records are buffered/loaded into the buffer tables.

Large amount of records can prove in-effective in this type.

2. Generic Buffering:

This is considered when there is a condition when a specific requirement based on generic key fields is processed.

Which means uniquely identified by its keyfields. This data is loaded into the buffer an then accessed.

This is a much effective kind.

3. Single-Record Buffering:

This is considered only when the exact or the records that are really required to be accessed are loaded into the buffer.

This kind requires very less storage space in comparison to the above.

But, as it is used for large or more data records. Hence, Administrative costs are high and more time is required.

IN BUFFERING SYNCHRONIZATION PLAYS AN IMPORTANT ROLE.

Scenario for Buffer Synchronization:

[Example Of Buffer Synchronization|http://help.sap.com/saphelp_46c/helpdata/en/cf/21f25e446011d189700000e8322d00/content.htm]

Good Luck & Regards.

Harsh Dave

Former Member
0 Kudos

help.sap.com/saphelp_46c/helpdata/en/f7/e4c5a8a84a11d194eb00a0c929b3c3/content.htm

help.sap.com/saphelp_nw70/helpdata/en/cf/21f244446011d189700000e8322d00/content.htm

https://help.sap.com/saphelp_nw04/helpdata/en/f1/f5c2deca023d4bb7dfeaf5eda45307/content.htm

CHk this links