Que tal um pouco sobre as estruturas de memória do SGBD Oracle? Pois bem.
A SGA (System Global Area) e a PGA (Program Global Area) são as estruturas de memória básicas de uma instância Oracle. A SGA é compartilhada pelos processos de background (as funções desses processos são assuntos para um outro tópico) e pelos processos do servidor . Já a PGA é uma área de memória exclusiva para cada processo do servidor. Nota: Cada processo do servidor possui uma PGA exclusiva.
1 - As informações para controle de uma instância Oracle está presente na SGA, que é formada pelas seguintes estruturas de dados:
- Cache de buffer do banco de dados: É a área utilizada para armazenar os blocos de dados recuperados do banco de dados.
- Buffer de redo log: É nesta área que ficam armazenadas as informações de redo (utilizadas para recuperação da instância), até serem gravadas nos arquivos de redo log (disco físico).
- Shared pool: Utilizada para armazenar vários constructs que poderão ser compartilhados pelos vários usuários conectados na instância.
- Large pool: Utilizada para armazenamento de grandes solicitações de entrada/saída. Embora seja uma estrutura opcional, é muito comum sua presença na SGA.
- Java pool: Esta área é utilizada pelos códigos JAVA dentro da JVM específicos à sessão.
- Streams pool: Usado pelo Oracle Streams.
Como a SGA possui uma estrutura dinâmica, o tamanho do shared pool, do large pool, do cache de buffer do banco de dados, do Java pool e do Streams pool pode ser alterado sem a necessidade de executar um shutdown na instância.
2 - A PGA é uma área de memória que possui informações de controle para o processo do servidor. É o processo do servidor o responsável por atender cada solicitação de um cliente. Como cada um desses processos possui sua própria PGA, esta região de memória é criada quando o processo é iniciado.
O conteúdo e o volume da PGA utilizado dependem de a instância ter sido configurada utilizando o modo de servidor compartilhado e ela geralmente contém:
- Área SQL privada: Contém as estruturas de memória de runtime e as informações de bind, sendo que cada sessão a executar um comando SQL possui uma área SQL privada.
- Memória de sessão: É utilizada para reter as variáveis de uma sessão além de outras informações.
OBS: Estas informações são baseadas no material oficial da Oracle - Banco de Dados Oracle 10g: Workshop de Administração I.
Nenhum comentário:
Postar um comentário