A referência Oracle citada para o detalhamento abaixo é o post Oracle.
Este post vem com a seguinte proposta: Aprofundar o conhecimento sobre estrutura de memória Oracle.
Vamos lá?
Estrutura de Memória
→ Database Buffer Cache
A memória é alocada para o SGA como memória virtual contígua em unidades denominadas como grânulos. O tamanho do grânulo depende do tamanho total estimado do SGA, que, como foi referido anteriormente, depende do parâmetro SGA_MAX_SIZE. Os grânulos são dimensionados da seguinte forma:
- Se o SGA é menor que 1 GB no total, cada grânulo é 4 MB .
- Se o SGA é maior do que 1 GB no total, cada grânulo é 16 MB .
Os grânulos são atribuídos ao Database Buffer Cache, Pool comum, Java Pool, e outras estruturas de memória, e esses componentes de memória pode aumentar e diminuir de forma dinâmica. Usando memória contígua melhora o desempenho do sistema. O número real de grânulos atribuído a um desses componentes de memória pode ser determinada consultando a exibição de banco de dados chamado V$ BUFFER_POOL .
→ Redo Log Buffer
O Redo Log Buffer objeto de memória armazena imagens de todas as alterações feitas em blocos de banco de dados. Blocos de banco de dados normalmente armazenam várias linhas da tabela de dados organizacionais. Isto significa que se um único valor da coluna de uma linha em um bloco for alterado, a imagem do bloco é armazenado.
Mudanças incluem INSERT, UPDATE, DELETE, CREATE, ALTER ou DROP.
LGWR escreve refazer sequencialmente no disco enquanto DBWn executa espalhados gravações de blocos de dados no disco.
- Gravações dispersas tendem a ser muito mais lenta do que gravações sequenciais.
- Porque LGWR permitir que os usuários evitar a espera para DBWn para concluir suas gravações lentas, o banco de dados proporciona melhor desempenho.
O Redo Log Buffer como um buffer circular que é reutilizado várias vezes. Conforme o buffer enche, cópias das imagens são armazenadas no Redo Log Files que são abordados com mais detalhes em um módulo mais tarde.
→ Java Pool
O Java da Pool é um opcional objeto de memória, mas é necessário se o banco de dados do Oracle Java instalado e em uso para Oracle JVM (Java Virtual Machine).
- O tamanho é definido com a JAVA_POOL_SIZE parâmetro que o padrão é 24 MB.
- O Java grupo é usado para alocação de memória para analisar comandos Java e para armazenar dados associados a comandos Java.
- Código Java e Armazenamento de dados na Pool Java é análogo ao código SQL e PL / SQL armazenado na área de Shared.
→ Streams Pool
Isto armazena dados Pool e estruturas de controle para suportar a funcionalidade do Oracle Streams da Oracle Enterprise Edition.
- A Oracle Steams administra partilha de dados e eventos em um ambiente distribuído.
- Ele é dimensionado com o parâmetro STREAMS_POOL_SIZE .
- STEAMS_POOL_SIZE Se não for definido ou é zero, o tamanho da Pool cresce de forma dinâmica.
→ Shared Pool
O pool compartilhado é uma estrutura de memória que é compartilhada por todos os usuários do sistema. Ele armazena vários tipos de dados do programa. Por exemplo, as lojas de Pool comum analisado SQL, o código PL / SQL, os parâmetros do sistema e de dados do dicionário de informações.
O Pool comum está envolvido em quase todas as operações que ocorre no banco de dados. Por exemplo, se um usuário executa uma instrução SQL, o Oracle banco de dados acessa o pool compartilhado. Trata-se de ambas as estruturas fixas e variáveis. O componente variável cresce e encolhe dependendo das exigências do tamanho da memória pelos usuários do sistema e programas aplicativos.
→ Cache Library
A memória é alocada para o Cache de Library, sempre que uma instrução SQL é analisado ou uma unidade de programa é chamado. Isto permite o armazenamento do SQL utilizado mais recentemente e PL / SQL.
Se a Library de cache é muito pequeno, a Library de cache deve limpar definições de instrução, a fim de ter espaço para carregar novas instruções SQL e PL / SQL. gestão efetiva desta estrutura de memória é através de um (LRU) algoritmo menos utilizado recentemente . Este significa que o SQL e PL / SQL que são mais antigo e usado menos recentemente são removidos quando mais espaço de armazenamento é necessário.
O Cache Library é composto por dois sub-componentes de memória:
- SQL compartilhada : Este lojas / ações do plano de execução e analisar árvore para instruções SQL, bem como declarações PL / SQL, tais como funções, pacotes e gatilhos Se um usuário do sistema executa uma declaração idêntica, então a declaração não tem que ser analisado novamente, a fim de executar a instrução.
- Área SQL privada : Com um servidor compartilhado, e sessão ach emitir uma instrução SQL tem uma área SQL particular em sua PGA.
- Cada usuário que envia a mesma afirmação tem uma área SQL privada apontando para a mesma área SQL compartilhada.
- Muitas áreas SQL particulares em PGAs separadas pode ser associado com a mesma área SQL compartilhada.
- Esta figura representa dois processos diferentes de clientes que emitem a mesma instrução SQL - a solução analisada já está em SQL área compartilhada.
→ Data Dictionary Cache
O Data Dictionary Cache é uma estrutura de memória que armazena informações de dicionário que tem sido utilizado recentemente. Esse cache é necessário porque o Data Dictionary é acessada com tanta frequência. As informações acessadas inclui informações de usuário de conta, nomes de arquivo de dados, as descrições da tabela, os privilégios de usuário e outras informações.
O servidor de banco de dados gerencia o tamanho do Data Dictionary Cache internamente e o tamanho depende do tamanho do pool compartilhado em que o Data Dictionary de cache reside. Se o tamanho é muito pequeno, então as tabelas de Data Dictionary que residem em disco deve ser consultado frequentemente para a informação e isso vai diminuir o desempenho.
Estrutura Física - Arquivos de Banco de Dados
Como já foi referido, um banco de dados Oracle consiste em arquivos físicos. O banco de dados em si tem:
- Datafiles - estes contêm dados reais da organização.
- Arquivos de log redo - Estes contêm um registro cronológico de alterações feitas no banco de dados e permitir a recuperação quando ocorrem falhas.
- Arquivos de controle - Usados para sincronizar todas as atividades do banco de dados e são abordados com mais detalhes em um módulo mais tarde.
[physical structure IMAGEM]
Outros arquivos importantes como mencionado acima incluem:
- Arquivo de parâmetros - há dois tipos de arquivos de parâmetros.
- O init.ora arquivo (também chamado de PFILE ) é um parâmetro estático arquivo . Ele contém os parâmetros que especificam como a instância de banco de dados é iniciado , por exemplo, alguns parâmetros irá especificar como alocar memória para as várias partes do sistema área global.
- O spfile.ora é um arquivo de parâmetro dinâmico. Ele também armazena parâmetros para especificar como a inicialização de um banco de dados; no entanto, os seus parâmetros podem ser alterados enquanto o banco de dados está em execução.
- Arquivo de senhas - especifica quais * Especial usuários são autenticados para o arranque / desligar uma instância Oracle.
- Arquivos de log redo arquivados - estes são cópias dos arquivos de log redo e são necessários para a recuperação, um ambiente de processamento de transações on-line em caso de uma falha de disco.
0 comments:
Postar um comentário