Pular para o conteúdo

Processamento das Instruções SQL

Processamento das Instruções SQL

Olá
Vou falar nos meus próximos post sobre as Fases de Processamento das instruções SQL.
E neste primeiro Post vou falar sobre a Fase de Parse.

Um Bom entendimento de instruções SQL é fundamental para uma criação otimizada de instruções SQL. No Processamento de Instruções SQL, existem quatro fases Importantes as quais vou relatar ao longo dos meus posts e que são elas:

  • Parsing
  • Binding
  • Executing e
  • Fetching.

Nesse post irei começar falando da fase de parse.

Fase de Parse (Análise)

A Fase de Parsing é um dos estágios que ocorre no processamento das instruções SQL. Quando uma aplicação emite uma instrução SQL, , ela na realidade emite uma chamada para o banco de dados e durante essa chamada para o banco analisar essa instrução, ou seja verificar se realmente é possível extrair resultados dela, e nessa fase de analise, o Oracle:

  • Verifica a instrução sql, sua sintaxe e  valida a sua semântica
  • Determina se o processo de emissão da instrução SQL tem a devida permissão para executá-la.
  • Aloca uma área privada para a instrução SQL

O Oracle primeiramente verifica se já existe uma analise (parse) dessa instrução SQL no cachê de biblioteca. Se já existir uma analise dessa instrução no cachê de biblioteca, essa instrução é executada imediatamente porém se a mesma não existir, o Oracle irá gerar uma analise dessa instrução e o processo do usuário ira alocar uma área de SQL compartilhada para a instrução no cachê de biblioteca após esse procedimento a instrução será analisada nesta área.

A Operação de Parse (análise) do Oracle sempre aloca uma área compartilhada para uma instrução SQL. Depois dessa área compartilhada ter sido alocada para essa instrução, a mesma já pode ser executada novamente repetitivamente(varias vezes) sem precisar ser analisada , ou seja sem precisar passar pela fase de Parse. O processo de Analise pode ser “caro” em relação a execução, pode ter um alto custo dos requisitos disponíveis, por isso essa etapa deve ser minimizada sempre que possível. O Ideal é que a instrução deva ser analisada uma vez e executada varias vezes sem a necessidade de uma nova análise para cada execução.

Existem dois Tipos de Operação de Parse (Analise):

  1. Hard Parsing : Dizemos que existe uma operação de Hard Parse quando uma instrução Sql é executada pela primeira vez e ela não se encontrada na shared pool. Esse tipo de parse é a fase que mais consome recurso intensivamente do banco de dados, porque quando isso ocorre é necessario executar todas as operações necessárias da fase de parse.
  2. Soft Parsing: Dizemos que existe uma operação de Soft Parse quando uma instrução executada já existe na shared pool..Quando uma instrução sql já esta armazenada no cache de biblioteca temos um ganho de performance.No entando, até mesmo na fase de parse temos ainda um consumo de recursos, pois mesmo a instrução já estando armazenada o banco ainda precisa verificar os parâmetros de segunça e a sintaxe da instrução e isso consome recursos do sistema.

Quando as variáveis bind (ligação) são usadas de modo correto, a operação de sof parsing ocorre mais vezes no banco da dados, reduzindo assim a operação de hard parsing e mantendo as instruções analisadas na cachê de biblioteca por um tempo maior.

Hudson Santos

Hudson Santos

Hudson é DBA Oracle com grande experiência em segmentos de Telecomunicações,WEB e Baking. É Especialista em performance e em alta disponibilidade com RAC. É certifcado Oracle OCA 11G e atuou em empresas lideres dos segmentos acima tais como: Orga Systems(Germany),Mih Naspers atuando no Buscape.com,Cetip S.A,Claro Brasil. Hudson também possui experiência com outros RDBMS e tecnologias de cache e motor de busca tais como: MySQL,SQL Server,Memcached,Sphinxs.

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress