The first time that the database server accesses a table, it retrieves necessary system-catalog information for the table from the disk. For each table access, this system-catalog information is stored in memory in the data-dictionary cache.
The database server still places pages for system catalog tables in the buffer pool as it does all other data and index pages. However, the data-dictionary cache offers an additional performance advantage because the data-dictionary information is organized in a more efficient format to allow fast retrieval.
The database server uses a hash algorithm to store and locate information in the data-dictionary cache. DD_HASHSIZE and DD_HASHMAX control the size of the data-dictionary cache. To specify the number of buckets in the data-dictionary cache, change the DD_HASHSIZE configuration parameter. To specify the number of tables that can be stored in one bucket, change the DD_HASHMAX configuration parameter.
For example, if DD_HASHMAX is 10 and DD_HASHSIZE is 100, you can store information for 1000 tables in the data-dictionary cache. Each hash bucket can store information for a maximum of 10 tables. If the bucket reaches the maximum size, the database server uses a least-recently used mechanism to clear entries from the data dictionary.
To monitor data-dictionary cache activity and determine how to tune its size, use onstat -g dic.
Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]