SAP Table Types
I. Transparent
tables (BKPF, VBAK, VBAP, KNA1, COEP)
- Allows secondary indexes (SE11->Display
Table->Indexes)
- Can be buffered (SE11->Display
Table->technical settings) Heavily updated tables should not be
buffered.
II. Pool Tables (match
codes, look up tables)
- Should be accessed via primary key
or
- Should be buffered (SE11->Display
Table->technical settings)
- No secondary indexes
- Select * is Ok because all columns retrieved
anyway
III. Cluster Tables
(BSEG,BSEC)
- Should be accessed via primary key - very fast
retrieval otherwise very slow
- No secondary indexes
- Select * is Ok because all columns retrieved
anyway. Performing an operation on multiple rows is more efficient
than single row operations. Therefore you still want to select
into an internal table. If many rows are being selected into the
internal table, you might still like to retrieve specific columns
to cut down on the memory required.
- Statistical SQL functions (SUM, AVG, MIN, MAX,
etc) not supported
- Can not be buffered
IV. Buffered Tables
(includes both Transparent & Pool Tables)
While buffering database tables in program memory
(SELECT into internal table) is generally a good idea for
performance, it is not always necessary. Some tables are already
buffered in memory. These are mostly configuration tables. If a table
is already buffered, then a select statement against it is very fast.
To determine if a table is buffered, choose the 'technical settings'
soft button from the data dictionary display of a table (SE12). Pool
tables should all be buffered.