The environmental descriptor manager (EDM) pool contains active and skeleton application plans and packages. The EDM pool has been separated into three pools: |the EDM pool, database descriptor (DBD) pool, and the statement pool.
There are four pools used by DB2 to cache information in memory as it operates. The longer information can be cached into memory, the better the chance the data can be reused by other processes without having to read it from disk again.
The DB2 buffer pools are the first of the four pools. When data is read off of disk, DB2 places it into a buffer pool. Whenever a user or program accesses a particular piece of data, DB2 first checks for it in the buffer pools. If it exists there, DB2 can avoid an expensive I/O to disk, thereby enhancing performance. DB2 buffer pools provide one of the most fertile areas for performance tuning and optimization. In general, DB2 loves large buffer pools. But buffer pools are backed by memory, and memory is expensive. So tuning the size of the DB2 buffer pools appropriately based on application workload is important. But it is also complex. There are 80 different buffer pools used by DB2, each of which can have multiple DB2 table spaces and indexes assigned to them. And there are tuning knobs for each of the 80 buffer pools that control things like how the buffer pool is optimized for random versus sequential access and how parallel operations are handled.
Monitoring activity in the buffer pools for multiple, concurrent applications is often too difficult for resource constrained DBA groups. As such, buffer pool tuning is usually accomplished only when a problem occurs. And therefore, resources may be wasted (because buffer pools are over-allocated) or applications may be running slower (if buffer pools are under-allocated).
The second of DB2?s four pools is the EDM pool. The EDM pool is used by DB2 to control programs as they execute against DB2. It will contain structures that house the access paths of the SQL statements for running programs. DB2 also permits dynamic SQL prepare information to be cached in the EDM pool to optimize dynamic SQL. But that is not all. The EDM pool also contains database information (DBDs) for the databases being accessed. Managing the size and efficiency of the EDM pool is vitally important because if there is no room in the EDM pool, a critical application may not be allowed to run.
The third of the four pools is the RID pool. The RID pool is used by DB2 to sort RIDs (record identifiers) for List Prefetch, Multiple Index Access, and Hybrid Join access paths. RID pool failures can cause performance degradation as alternate access paths are invoked, such as scans, and the CPU invested up to the point of the failure is wasted.
Finally, the Sort pool is used by DB2 to perform highly efficient internal sorts of data. Sort pool performance degradations can impact elapsed times dramatically and sort failures can terminate a statement.