Estruturas de memória Oracle

Neste artigo conheceremos como funciona internamente a estrutura de memória do Oracle. Conheceremos como funcionam a PGA e SGA e como podemos fazer uso de configurações manuais e automáticas para otimizar seu uso.

Fique por dentro
Todo DBA que se defronta com problemas de performance precisa saber identificar se eles se relacionam com a configuração da área de memória. Conhecendo a origem dos problemas, pode-se solucioná-los com maior facilidade direcionando as ações de correção para uma parametrização adequada. Todo DBA precisa, ainda, monitorar constantemente a utilização de memória e o consumo de recursos do banco de dados que administra a partir de estatísticas que recebe de diversos relatórios e ferramentas. Com as informações deste artigo, as duas tarefas serão facilitadas. O DBA poderá enfrentar mais eficientemente as questões de performance que surgirem e interpretará mais facilmente os resultados do monitoramento dos bancos de dados por ele administrados.

A arquitetura de um banco de dados Oracle costuma ser considerada uma espécie de “caixa-preta”, difícil de conhecer, compreender e manipular. Seus múltiplos componentes – estruturas de memória, processos background, processos de usuário – têm uma funcionalidade integrada e complexa, cujo entendimento, embora fundamental para a boa administração do banco Oracle, muitas vezes não é amplamente dominado.

Especialmente naquilo que se refere às estruturas de memória, de que trataremos neste artigo, a automatização paulatina da configuração, apesar de todas as vantagens que evidentemente traz para o trabalho do DBA na maior parte dos casos, acabou colaborando para torná-la ainda menos acessível e, por isso, pouco dominada.

Nenhum banco de dados, por mais e melhores recursos de auto ajuste que possua, pode prescindir do trabalho efetivo do DBA e do seu conhecimento subjetivo a respeito do banco em si, de suas estruturas e de sua importância para o negócio da empresa. Sob esta perspectiva, uma boa configuração das estruturas de memória do banco de dados Oracle, ajustada às necessidades específicas de cada caso – resultante, portanto, de um processo continuado e proativo de tuning – terá como consequência maiores ganhos de performance, um desempenho mais otimizado e o melhor atendimento de sua finalidade negocial.

A finalidade deste artigo é abrir um pouco a “caixa-preta” da arquitetura, para que os administradores de bancos de dados Oracle possam enxergar as estruturas de memória que a compõem, compreender a sua funcionalidade e utilizá-las do modo mais favorável ao seu trabalho, sem abrir mão dos recursos automáticos de configuração.

Descrevendo a memória

Costuma-se definir uma Oracle instance (instância Oracle) como um conjunto formado por área de memória e processos background (processos alocados no servidor com funções específicas). Deixando de lado os processos e sabendo que a instância Oracle é que dispara o processo de inicialização do banco de dados, temos como consequência lógica que a área de memória a ser utilizada é alocada já nesta fase.

Mas isto que chamamos área de memória genericamente, na verdade é um conjunto formado por estruturas maiores (divididas, ainda, em subestruturas com funcionalidades específicas – algumas diretamente configuráveis, outras não), que são:

· SGA (System Global Area): conjunto de estruturas de memória compartilhada, ou seja, cujo conteúdo é compartilhado por todos os processos vinculados à instância Oracle (processos background e processos server, ligados às sessões dos usuários conectados ao banco de dados);

· PGA (Program Global Area): área de memória privativa de um processo (seja ele background ou server), cujo conteúdo não é compartilhado com outros processos ou entre as sessões dos usuários. Muito embora a PGA seja individualizada, sua configuração se dá pelo total disponibilizado e alocado para a instância;

· UGA (User Global Area): memória associada especificamente às sessões dos usuários;

· Áreas de código (software code areas): áreas de armazenamento do código (potencialmente) em execução pelo banco Oracle.

Das estruturas mencionadas, aquelas diretamente configuráveis pelo DBA (e que afetam mais intensamente a performance do banco de dados) são a SGA e a PGA.

Mas, antes de falar das estruturas que compõem a área de memória alocada para o banco de dados Oracle, precisamos compreender como se faz a sua configuração. Coexistem, na versão 11g Release 2, três grandes métodos para isso. Vamos, inicialmente, descrever estes métodos, com suas diferenças e vantagens."

[...] continue lendo...

Artigos relacionados