Geometria
O que ocorre durante um select
Requisição, Alocação de Memória, Parse, execução e fetch
Requisição – Processo Cliente solicita – Processo Servidor recebe o aviso que receberá um comando.
Alocação de Memória – Reverva-se espaço na Shared SQL Area para armazenar o comando e os dados.
Parse – Realiza a verificação sintática e semântica, verifica se já não existe na Shared SQL Area, busca informações sobre o objeto manipulado, determina-se o plano de execução (índices) e armazena a versão compilada do comando.
Execução – Aplica-se o plano de execução, realizando leituras lógicas e físicas (neste caso entra em ação o DBWR)
Fetch – Cria-se um conjunto de linha que serão retornadas ao processo Servidor que retorna ao processo Cliente.
O que ocorre durante um Update
Requisição, Alocação de Memória, Parse, Leitura, Reserva, Bloqueio, Cópia para Reserva, Log para valores antigos, Log para valores antigos, Atualiza, Log para valores novos e Notificação.
Requisição – Processo Cliente solicita – Processo Servidor recebe o aviso que receberá um comando.
Alocação de Memória – Reverva-se espaço na Shared SQL Area para armazenar o comando e os dados.
Parse – Realiza a verificação sintática e semântica, verifica se já não existe na Shared SQL Area, busca informações sobre o objeto manipulado, determina-se o plano de execução (índices) e armazena a versão compilada do comando.
Leitura – Verifica se os dados a serem alterados já estão no Database Buffer Cache senão realiza a leitura física.
Reserva – reserva um bloco para o caso da transação for desfeita (área de Rollback).
Bloqueio – As linhas que serão alteradas são bloqueadas.
Cópia para reserva – Efetua uma cópia para uma área de Rollback (Disco ou Memória)
Log para valores antigos – Grava os valores atuais no Redo Log Buffer
Atualiza – Modifica(m) a(s) linha(s).
Log para valores novos – Os novos valores são armazenados