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.
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óriaCostuma-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
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo