<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: about table buffering in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-table-buffering/m-p/2694091#M623473</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;buffering concept is for speed up of your program's database request for retriving the data from the database for frequently read data. I mean if you frequently read a database table and that table has been optioned by the buffering concept (you can check it in the technical settings-&amp;gt; buffering concept-&amp;gt; buffering switched on) which will store all the data in the application server in RAM. next time if you program try to access the same data the database request wont go to the dabase level and will pick up the data from the buffer in the application server. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note: the main advantage of buffering concept is for speed up of your application and reduce the network traffic in the server level.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;there are 3 types of buffering concepts:&lt;/P&gt;&lt;P&gt;1. single record buffering: for frequently readed single records works with select single * only.&lt;/P&gt;&lt;P&gt;2. generic buffering: for frequently readed a group of fields in the table work with select/endselect.&lt;/P&gt;&lt;P&gt;like select field1 field2 .....endselect.&lt;/P&gt;&lt;P&gt;3. full buffering: for entire table and work with select/endselect.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select * from ....endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;award points helpful&lt;/P&gt;&lt;P&gt;sekhar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 13 Aug 2007 05:39:19 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-08-13T05:39:19Z</dc:date>
    <item>
      <title>about table buffering</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-table-buffering/m-p/2694088#M623470</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi experts,&lt;/P&gt;&lt;P&gt;              Explain me what is table buffering.why we have to use this concept ?and under which circumstances we need to use this concept.and if not what will be the consequences.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ragards,&lt;/P&gt;&lt;P&gt;mani&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Aug 2007 05:17:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/about-table-buffering/m-p/2694088#M623470</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-13T05:17:18Z</dc:date>
    </item>
    <item>
      <title>Re: about table buffering</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-table-buffering/m-p/2694089#M623471</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table buffering is a concept used to Buffer the Table entries on the application server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So the Database queries can be addressed using the Table buffer instead from the Database.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That is we can avoid hitting the Database server. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;BUT We have to be very careful when we decide on which table to buffer and how we buffer it.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We should not buffer any table which is modified very often. We can buffer something like Master tables which will not be modified often.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You maintain table buffering settings in SE11 under Technical Settings for the table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Here is the documentatio for buffering in SE11.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The buffering status specifies whether or not a table may be buffered.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This depends on how the table is used, for example on the expected volume of data in the table or on the type of access to a table. (mainly read or mainly write access to the table. In the latter case, for example, one would not select buffering).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should therefore select&lt;/P&gt;&lt;P&gt;- Buffering not allowed if a table may not be buffered.&lt;/P&gt;&lt;P&gt;- Buffering allowed but not activated if buffering is&lt;/P&gt;&lt;P&gt;  principally allowed for a table, but at the moment no buffering&lt;/P&gt;&lt;P&gt;  should be active. The&lt;/P&gt;&lt;P&gt;buffering type specified in this case is only&lt;/P&gt;&lt;P&gt;  a suggestion.&lt;/P&gt;&lt;P&gt;- Buffering allowed if the table should be buffered. In this&lt;/P&gt;&lt;P&gt;  case a buffering type&lt;/P&gt;&lt;P&gt;must be specified.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Aug 2007 05:21:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/about-table-buffering/m-p/2694089#M623471</guid>
      <dc:creator>seshatalpasai_madala</dc:creator>
      <dc:date>2007-08-13T05:21:52Z</dc:date>
    </item>
    <item>
      <title>Re: about table buffering</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-table-buffering/m-p/2694090#M623472</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You get the same in SAP help, but i dont know the link..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SAP Buffering &lt;/P&gt;&lt;P&gt;The SAP database interface enables storage of database tables in local buffers, i.e. the buffers reside locally on each application server of the system. Buffering is especially important in a client/server environment because the access time using the network is much greater than the access time to a locally buffered table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The flag Buffering allowed must be set in the ABAP/4 Dictionary in order that a table be buffered. The buffering type must also be maintained in the technical settings of the table. Setting the flag Buffering allowed alone does not cause the tables to be buffered! &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Whether or not it makes sense to buffer a table depends on the type of access to the table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The buffering type defines how the table should be buffered. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are the following 3 buffering types: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;X full buffering &lt;/P&gt;&lt;P&gt;P single record (partial) buffering &lt;/P&gt;&lt;P&gt;G generic buffering &lt;/P&gt;&lt;P&gt;no entry no buffering &lt;/P&gt;&lt;P&gt;A number of key fields between 1 and number of key fields -1 must be defined for generic buffering. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;X full buffering &lt;/P&gt;&lt;P&gt;Full buffering &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When should you select full buffering? &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;P single record (partial) buffering &lt;/P&gt;&lt;P&gt;Single-record buffering &lt;/P&gt;&lt;P&gt;With this kind of buffering, only the records of a table which are actually accessed are loaded into the buffer. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If an as yet unbuffered record is accessed with 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, a renewed database access can be avoided. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When should single-record buffering be selected? &lt;/P&gt;&lt;P&gt;For large tables where there are frequent single-record accesses (with SELECT SINGLE ...). The size of the records being accessed should be between 100-200 KB. &lt;/P&gt;&lt;P&gt;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, whilst single-record buffering calls for a very large number of table accesses. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Generic buffering &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When should generic buffering be selected? &lt;/P&gt;&lt;P&gt;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 which are fully buffered. Please also read the text about full buffering. &lt;/P&gt;&lt;P&gt;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 per generic area, it is more efficient to use full buffering. &lt;/P&gt;&lt;P&gt;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. &lt;/P&gt;&lt;P&gt;Language-specific tables are an example of a good use of generic buffering (with the language key field as generic key area). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Bypassing Buffer is related to the buffering settings in the technical&lt;/P&gt;&lt;P&gt;details of a database table. These table buffers are available on every&lt;/P&gt;&lt;P&gt;application server. SELECT statements on a buffered table use this table&lt;/P&gt;&lt;P&gt;buffer in stead of processing the SQL request on the database. As a&lt;/P&gt;&lt;P&gt;result, using table buffering leads to performance improvements, but&lt;/P&gt;&lt;P&gt;only if:&lt;/P&gt;&lt;P&gt;- the buffered table is small&lt;/P&gt;&lt;P&gt;- the contents of the table doesn't change often.&lt;/P&gt;&lt;P&gt;SAP uses table buffering for a lot of their customizing table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Bypassing Buffer means: skip the table buffer on the application server&lt;/P&gt;&lt;P&gt;and process the sql-request on the database. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The table buffers are automatically synchronized with changes in the&lt;/P&gt;&lt;P&gt;database.  However, it takes some time for the database updated to be&lt;/P&gt;&lt;P&gt;available in the table buffer. So if you want to be 100% sure that the&lt;/P&gt;&lt;P&gt;data you read is up to date, you must use the option BYPASSING BUFFER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please note that there are also SQL statements that implicitely perform&lt;/P&gt;&lt;P&gt;a BYPASSING BUFFER, for example when using a table in a JOIN statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Prabhu&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if it is helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Aug 2007 05:27:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/about-table-buffering/m-p/2694090#M623472</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-13T05:27:42Z</dc:date>
    </item>
    <item>
      <title>Re: about table buffering</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/about-table-buffering/m-p/2694091#M623473</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;buffering concept is for speed up of your program's database request for retriving the data from the database for frequently read data. I mean if you frequently read a database table and that table has been optioned by the buffering concept (you can check it in the technical settings-&amp;gt; buffering concept-&amp;gt; buffering switched on) which will store all the data in the application server in RAM. next time if you program try to access the same data the database request wont go to the dabase level and will pick up the data from the buffer in the application server. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note: the main advantage of buffering concept is for speed up of your application and reduce the network traffic in the server level.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;there are 3 types of buffering concepts:&lt;/P&gt;&lt;P&gt;1. single record buffering: for frequently readed single records works with select single * only.&lt;/P&gt;&lt;P&gt;2. generic buffering: for frequently readed a group of fields in the table work with select/endselect.&lt;/P&gt;&lt;P&gt;like select field1 field2 .....endselect.&lt;/P&gt;&lt;P&gt;3. full buffering: for entire table and work with select/endselect.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select * from ....endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;award points helpful&lt;/P&gt;&lt;P&gt;sekhar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Aug 2007 05:39:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/about-table-buffering/m-p/2694091#M623473</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-13T05:39:19Z</dc:date>
    </item>
  </channel>
</rss>

