As I understand, Data Dictionary
- Is a collection of tables, part of SYS schema (if not the whole SYS schema)
- It is stored as ‘regular’ tables, so whatever is applied to database tables, also applies to data dictionary (e.g. indexes, statistics)
- Its statistics should be updated
- It is always cashed
Can the the size and the complexity of oracle data dictionary affect the database performance?
When I add a new object on my database a new (or multiple) entries is/are added on data dictionary. A scenario I can think of has to do with partitioning. So if I have a table which have a partition and subpartitions, I will have an entry for the table, an entry for each partition and an entry of each partition subpartitions in data dictionary. Those entries are spawned among different ‘tables’. Imagine know having tables with thousands of partitions and hundreds of subpartition. Again this number of records may not be something that a dbms can handle, but how it will affect its performance as it grows?
Note: I have read a lot of discussion on if and how partitioning affects performance in general. This is out of scope for this question. Partitioning is just an example I though, to show how data dictionary volume can grow.