A shared pool está dividida em dezenas de subestruturas. AS mais conhecidas são:
- O cache de biblioteca: que a área de memória responsável por armazenar o código executado recentemente, na sua forma analisada por parse
- O cache de dicionário de dados: armazena definições de objetos para que as instruções possam ser analisadas por parse rapidamente sempre que necessário, sem precisar consultar o dicionário de dados.
- A área PL/SQL: os objetos PL/SQL como procedures, funções, triggers, etc, são armazenados no dicionário de dados. Então para que não seja lida repetidas vezes o dicionário, guarda-se um cache desses objetos.
- O cache de resultados de funções PL/SQL e consultas SQL: armazena os resultados das consultas em cache, assim consultas que retornam o mesmo resultado sempre, podem rapidamente obter o resultado através deste cache.