Table Clusters and Pools
Table clusters and pools are special types of tables in SAP that group related data together for performance optimization.
Understanding Table Clusters and Pools
Table clusters and pools are database objects that:
- Group related data together
- Optimize storage and access performance
- Reduce database overhead
- Store multiple logical tables in a single physical table
- Are managed by the SAP system
Table Clusters vs. Table Pools
While both table clusters and pools store multiple logical tables in a single physical table, they serve different purposes:
Aspect | Table Clusters | Table Pools |
---|---|---|
Purpose | Group related data with similar access patterns | Group small tables with similar structures |
Storage | Data is stored in a compressed format | Data is stored in a standard format |
Access | Accessed as a unit | Individual tables can be accessed independently |
Usage | Primarily for application data | Primarily for customizing data |
Example | PCL1 (Personnel Calendar) | CDPOS (Change Document Items) |
Table Cluster Structure
A table cluster consists of:
Cluster Header
- Contains metadata about the cluster
- Manages the overall structure
- Defines the clustering criteria
Cluster Tables
- Individual logical tables within the cluster
- Share common key fields
- Are accessed together
Cluster Keys
- Fields used to identify and access data within the cluster
- Typically include business object identifiers
- Determine how data is organized within the cluster
Table Pool Structure
A table pool consists of:
Pool Header
- Contains metadata about the pool
- Manages the overall structure
- Defines the pooling criteria
Pool Tables
- Individual logical tables within the pool
- Share similar structures
- Can be accessed independently
Pool Area
- Physical storage area for the pool
- Contains data from all pool tables
- Optimized for storage efficiency
Common Table Clusters in SAP
Human Resources (HR)
Cluster | Description | Key Tables | Used For |
---|---|---|---|
PCL1 | Personnel Calendar | PA0007, PA2001, PA2002 | Time management data |
PCL2 | Personnel Calendar Text | T559L, T559P | Calendar text data |
B | HR Master Data | PA0000-PA9999 | Employee infotype data |
RH | HR Time Events | PTEX2 | Time recording data |
Logistics
Cluster | Description | Key Tables | Used For |
---|---|---|---|
MCL1 | Material Cluster | MARA, MARC, MARD | Material master data |
KCL1 | Customer Cluster | KNA1, KNVV, KNVP | Customer master data |
VCL1 | Sales Document Cluster | VBAK, VBAP, VBEP | Sales document data |
LCL1 | Delivery Cluster | LIKP, LIPS | Delivery document data |
Finance
Cluster | Description | Key Tables | Used For |
---|---|---|---|
FCL1 | Financial Document Cluster | BKPF, BSEG | Accounting document data |
ACL1 | Asset Cluster | ANLA, ANLZ | Asset accounting data |
CCL1 | Controlling Cluster | COEP, COSS | Controlling data |
GCL1 | General Ledger Cluster | GLT0, GLPCA | G/L account data |
Common Table Pools in SAP
System Tables
Pool | Description | Key Tables | Used For |
---|---|---|---|
APPL | Application Log | BALHDR, BALM, BALW | Application logging |
TRTY | Transport System | E070, E071, E07T | Transport management |
RSAU | Audit Information System | RSAUFILES, RSAUTOKEN | Audit logging |
RSRD | Reporting | RSRREPDIR, RSRREPRT | Report directory |
Customizing Tables
Pool | Description | Key Tables | Used For |
---|---|---|---|
CDCLS | Change Documents | CDHDR, CDPOS | Change document management |
DDFTX | Data Dictionary | DD01T, DD04T | Dictionary text tables |
TPTY | Table Types | DD17S, DD17V | Table type definitions |
VFTY | Field Types | DD03VT, DD03VV | Field type definitions |
Accessing Cluster and Pool Tables
Direct Access
Cluster and pool tables can be accessed directly using:
- SE16/SE16N: Data Browser
- SE11: ABAP Dictionary Maintenance
- SE14: Database Utility
Programmatic Access
In ABAP programs, cluster and pool tables are accessed using:
SELECT * FROM <table_name> INTO TABLE <internal_table>
WHERE <key_field> = <value>.
The SAP system automatically handles the cluster or pool access.
Performance Considerations
Advantages
- Reduced I/O Operations: Data is read in larger blocks
- Improved Cache Utilization: Related data is stored together
- Reduced Database Overhead: Fewer table entries in the database catalog
- Optimized Storage: Compressed format reduces storage requirements
Disadvantages
- All-or-Nothing Access: For clusters, all data is read even if only part is needed
- Complex Maintenance: More difficult to maintain than transparent tables
- Limited Direct Access: Some database operations are restricted
- Migration Challenges: More complex to migrate to new database technologies
Technical Details
Physical Storage
Cluster and pool tables are stored in the database as:
- Cluster Tables: Single table with a key column and a long binary object (LOB) column
- Pool Tables: Single table with a key column and data columns for all pool tables
Internal Structure
The internal structure is managed by the SAP system:
- Cluster Manager: Handles compression, decompression, and access
- Pool Manager: Manages table allocation within the pool
- Dictionary Objects: Define the logical structure of tables
Best Practices
When to Use Clusters and Pools
- Use clusters for related data that is always accessed together
- Use pools for small tables with similar structures
- Consider performance implications before creating custom clusters or pools
- Follow SAP recommendations for specific business scenarios
Monitoring and Optimization
- Monitor access patterns to cluster and pool tables
- Analyze performance using transaction ST05 (Performance Trace)
- Consider splitting large clusters if only parts are frequently accessed
- Regularly reorganize clusters and pools for optimal performance
Finding Cluster and Pool Tables
Several methods exist to identify cluster and pool tables:
- Transaction SE11: View table attributes
- Transaction SE14: Database statistics
- Table DD02L: Check TABCLASS column (C = Cluster, P = Pool)
- SQL Query:
SELECT * FROM DD02L WHERE TABCLASS = 'C' OR TABCLASS = 'P'
SAP HANA Considerations
With SAP HANA, the role of clusters and pools has changed:
- Column Store: HANA's column-oriented storage reduces the need for clusters
- In-Memory Processing: Reduces I/O bottlenecks that clusters were designed to address
- Code to Data: HANA's architecture favors bringing code to data rather than grouping data
- Migration Path: SAP provides tools to migrate cluster and pool tables to transparent tables
Custom Clusters and Pools
Organizations can create custom clusters and pools, but this is generally not recommended:
- Requires deep technical knowledge of SAP architecture
- May cause compatibility issues with future SAP upgrades
- Often better to use transparent tables with appropriate indexing
- Consider using table partitioning in modern databases instead
If custom clusters or pools are necessary, follow these guidelines:
- Work with experienced SAP database administrators
- Document the design thoroughly
- Test performance under various load conditions
- Plan for future migration to transparent tables