Internal locks are higher-level, more complex mechanisms than latches and mutexes and serve various purposes.
The database uses the following types of internal locks:
These locks are of very short duration and are held on entries in dictionary caches while the entries are being modified or used. They guarantee that statements being parsed do not see inconsistent object definitions. Dictionary cache locks can be shared or exclusive. Shared locks are released when the parse is complete, whereas exclusive locks are released when the DDL operation is complete.
These locks protect various files.
For example:
Because file and log locks indicate the status of files, these locks are necessarily held for a long time.
These locks protect tablespaces and undo segments.
For example: