The data dictionary is a collection of database tables, owned by the SYS and SYSTEM schemas, that contain the metadata about the database, its structures, and the privileges and roles of database users. The data dictionary cache holds a subset of the columns from data dictionary tables after first being read into the buffer cache. Data blocks from tables in the data dictionary are used continually to assist in processing user queries and other DML commands. If the data dictionary cache is too small, requests for information from the data dictionary will cause extra I/O to occur; these I/O-bound data dictionary requests are called recursive calls and should be avoided by sizing the data dictionary cache correctly.
- Parsing and execution plans:
The shared SQL area is a particularly important part of the shared pool. When you send a SQL statement to the database,
Oracle must determine how to execute that statement. Oracle needs to determine what tables are involved, which indexes to use,
if any, what the join order should be, and so forth. This process is called parsing, and typically involves a number of recursive queries to the data dictionary.