O sistema de gerenciamento de banco de dados Oracle possui uma arquitetura complexa. Uma das estruturas mais importantes que podemos destacar é a de memória. Duas das principais áreas de memória no Oracle são SGA (System Global Area) e PGA (Program Global Area). Relacione as áreas de memória com a sua respectiva utilização e definição. 1. PGA 2. SGA ( ) Ao executar uma instrução SQL é armazenado: tabelas temporárias, Linhas de classificação, bitmaps de mesclagem, variáveis e pilha de chamadas ( ) Contém estruturas que podem ser dimensionadas de forma independente ( ) Está associada a cada sessão e irá variar seu tamanho de acordo com as necessidades de memória da sessão em dado momento. ( ) Aloca e desaloca a memória do servidor ao iniciar ou desligar a instância. ( ) Está presente em sua composição além de outras estruturas o stream pool, java pool. Também fazem parte. Assinale a opção que indica a relação correta, na ordem apresentada.
- A)2, 2, 1, 2 e 1.
Errada, porque inverte várias definições ao tratar estruturas de sessão como SGA e estruturas da instância como PGA.
- B)1, 1, 2, 2 e 2.
Errada, porque a primeira e a segunda afirmações não são de PGA, já que elas descrevem características da SGA.
- C)1, 2, 1, 1 e 1.
Errada, porque a segunda, a quarta e a quinta afirmações não correspondem à PGA, então a sequência fica inconsistente.
- D)2, 1, 1, 2 e 1.
Errada, porque a segunda afirmação é de SGA e a terceira é de PGA, mas a sequência não fecha com o restante das descrições.
- E)1, 2, 1, 2 e 2.
Certa, porque identifica PGA nas estruturas de sessão/processamento e SGA nas estruturas compartilhadas da instância.
Gabarito: E
No Oracle, vale pensar assim: a SGA é a memória compartilhada da instância, usada por todos, enquanto a PGA é a memória privada de cada sessão/processo. A PGA guarda as informações de execução que fazem sentido “para aquele momento e para aquela conexão”, como variáveis, pilha de chamadas, áreas de ordenação, tabelas temporárias e estruturas usadas em operações como sort e hash join. Já a SGA reúne estruturas que servem para a instância inteira, como buffer cache, shared pool, java pool e stream pool. A questão mistura exatamente essas ideias. A frase sobre “ao executar uma instrução SQL é armazenado: tabelas temporárias, linhas de classificação, bitmaps de mesclagem, variáveis e pilha de chamadas” descreve a PGA, porque isso é memória de trabalho da sessão. A descrição de que a área “está associada a cada sessão e irá variar seu tamanho de acordo com as necessidades de memória da sessão em dado momento” também é PGA. Por outro lado, “contém estruturas que podem ser dimensionadas de forma independente” aponta para a SGA, já que nela existem componentes como shared pool, database buffer cache, java pool e stream pool, que podem ter ajuste próprio. E a parte “aloca e desaloca a memória do servidor ao iniciar ou desligar a instância” também é SGA, porque ela existe ligada à instância do Oracle, não à sessão individual. Então a sequência fica: 1, 2, 1, 2, 2, que corresponde à alternativa E. Em termos de doutrina de administração Oracle, essa distinção é clássica: PGA é por processo/sessão, SGA é compartilhada pela instância.