Uma breve introdução dos componentes do motor Oracle (Otimizador por Custo):

Após um tempo finalmente, consegui dar continuidade ao blog 🙂 :). E aqui vai uma pré para o post mais aprofundado para do CBO que virá.

Quando um comando SQL chega ao engine oracle, quatro elementos são importantes para a execução do mesmo:

• Parser

• Optimizer

• Row source generator

• SQL executor

Parser:

Este elemento confere se a sintaxe e a semântica do SQL enviado estão corretas. Durante a análise sintáxica, o parser irá garantir que os comandos foram executados corretamente (o que poderíamos chamar de analise gramatical), enquanto, o que podemos chamar de análise semântica, confere se os objetos referenciados realmente existem na BD.

Otimizador:

Este componente tem um papel principal. É responsável por descobrir o melhor caminho (que se define como plano de execução) para retornar os dados, consoante aos filtros e relações que possam existir.

Para tal existem dois tipos de otimizador o CBO (Cost Based Optimizer) e o RBO (Rule Based Optimizer), sendo o CBO o otimizador mais robusto o RBO já foi descontinuado, apesar de coexistir não houve mais evoluções para o mesmo.

O CBO define a melhor forma de obter os dados, baseia-se nos seguintes quesitos:

• No código SQL enviado

• Na capacidade da máquina (estatísticas de sistema)

• No modelo de dados (pk, references e etc)

• Dispersão dos dados (estatísticas das tabelas e índices)

• E parâmetros de BD (já falado em outros posts optimizer_index_cost_adj, optimizer_index_caching, db_file_multiblock_read_count e etc).

Com estes itens o CBO faz um bom julgamento perante os vários planos de execuções possíveis para escolher o melhor.

Gerador de registro:

Com o plano de execução em mãos , que é o conjunto estruturados das fontes dos dados, em que cada um retorna a porção de dados necessários para o SQL trabalhar.

Executor de SQL:

Componente que executa o plano de execução e produz o resultado final.

Saudações Vascaínas….

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s