Processamento de Consultas no Oracle
Boa Tarde meus caros! Como anda essa força?
Dando continuidade no tema de Arquitetura Oracle, irei abordar hoje sobre o funcionamento e etapas do processamento das consultas oracle. Vamos lá!
* Processamento de Consultas
As consultas são diferentes de outros tipos de instruções SQL, porque, se forem bem sucedidas, retornarão dados como resultados. Enquanto outras instruções apenas informam se houve êxito ou falha, uma consulta pode retornar uma linha ou milhares de linhas. Há três estágios principais do processamento de uma consulta:
- Analisar (Analyze/Parse)
- Executar (Execute)
- Extrair (Fetch)
+ Analisando uma Instrução SQL +
Durante o estágio de parse, a instrução SQL é transmitida do processo de usuário para o processo de servidor, e uma representação analisada da instrução SQL é carregada em uma área SQL compartilhada.
* Durante o parse (Analyze/Parse), o processo de servidor:
- Procura uma cópia existente da instrução SQL no pool compartilhado.
- Valida a instrução SQL verificando sua sintaxe.
- Efetua pesquisas no dicionário de dados para validar definições de tabela e coluna.
- Adquire bloqueios de análise em objetos, de forma que as definições não se alteram durante a análise da instrução.
- Verifica os privilégios do usuário para acessar os objetos de esquema mencionados.
- Determina o plano de execução ideal para a instrução.
- Carrega a instrução e o plano de execução em uma área SQL compartilhada.
* Executando a Instrução (Execute)
Neste ponto, o servidor Oracle possui todas as informações e recursos necessários para que a instrução seja executada.
Para as instruções SELECT, o processo de servidor prepara-se para recuperar os dados.
* Extraindo as Linhas de uma Consulta (Fetch)
No estágio de extração, as linhas são selecionadas, ordenadas (se necessário) e retornadas pelo servidor ao usuário.
Dependendo do número de linhas retornadas em cada extração, uma ou mais extrações podem ser necessárias para transferir os resultados de uma consulta para o usuário.
Amigos, é importante ressaltar, como esses conceitos “básicos” fazem toda a diferença para o DBA lá na frente, o Oracle é uma ferramenta muito poderosa e robusta, mas em determinadas situações você precisará compreender bem os conceitos para resolver alguns problemas, e não ter apenas um “ctrl+c” dos comandos em sua mente.
Bons estudos! Deus os abençoe!