Instância Oracle

O que é uma Instância Oracle: A Instância Oracle é um espaço em memória RAM que é disponibilizado para o banco de dados Oracle trabalhar quando ele é iniciado, ou seja é neste espaço estarão alocados os dados e os processos necessários para que o usuário possa utilizar o banco de dados Oracle.

A Instância Oracle é composta pela SGA (System Global Area), PGA (Program Global Area) e pelos cinco principais processos de background do banco de dados Oracle, nesta postagem estaremos falando somente sobre as três principais sub-areas da SGA do Oracle.


A SGA (System Global Area) é um espaço lógico de memória alocado em uma Instância Oracle que possui seis sub-areas que permitem ao banco de dados Oracle trabalhar com dados em memória de maneira organizada, as três sub-areas principais são: SHARED POOL, DATABASE BUFFER CACHE, REDO LOG BUFFER.

SHARED POOL: Nesta sub-area da SGA é armazenado todo plano de execução das instruções SQL utilizadas no banco de dados Oracle, o objetivo de armazenar as instruções SQL neste espaço chamado Shared Pool é aumentar o desempenho do banco de dados na execução de consultas, atualizações, inserções de dados, etc.
Pois toda vez que é executada uma instrução SQL, ocorre um processo de verificação de semântica e sintaxe para garantir que esta instrução está correta, este processo de verificação consome recursos de hardware dependo do tamanho da consulta pode gerar alguns minutos de verificação, reduzindo desta forma o desempenho do banco de dados Oracle.
Para que isto não aconteça, após a verificação da instrução o plano de execução das instruções SQL executadas são armazenadas na Shared Pool, desta forma, caso um usuário execute uma consulta que possui o mesmo plano de execução armazenado na Shared Pool não é necessário que o banco de dados Oracle execute ou processo de verificação, aumentando o desempenho do banco de dados.


DATABASE BUFFER CACHE: Nesta sub-area da SGA chamada Database Buffer Cache são armazenado os dados do banco de dados, exemplo: Quando uma instrução SQL como um SELECT, o plano de execução desta instrução é armazenado na Shared Pool e os dados que correspondem  a instrução executada são armazenados no Database Buffer Cache, estes dados são coletados dos Data Files ou Disco Rígido e organizados em memória na Database Buffer Cache.
Bem, coletar os dados nos Data Files consome muito mais recurso do coletar dados em memória RAM, para que o banco de dados não necessite retornar ao disco toda vez que uma consulta for solicitada o  utiliza-se esta sub-area chamada Database Buffer Cache, aumentando o desempenho do banco de dados Oracle.

REDO LOG BUFFER: Nesta sub-area chamada Redo Log Buffer são armazenadas as informações das transações executadas no banco de dados Oracle, como por exemplo, qual usuário executou a transação, dia, mês, ano, hora, minuto, segundo que esta transação foi iniciada ou encerrada, etc. Como o próprio nome já diz, Redo siguinifica Refazer, ou seja, todas estas informações são armazenadas no Redo Log Buffer para que possam ser restauradas caso ocorra alguma cátastrofe com o banco de dados Oracle, como queda de energia, falha de hardware, entre outras.