Por que o Otimizador criou um plano de execução ineficiente?

Oracle Optimizer CBO

O plano de execução é uma sequência de operações que acessam os dados nas tabelas indicadas na instrução SQL, considerando os filtros especificados na cláusula WHERE, a sequência em que as tabelas são acessadas e o tipo de operação que será utilizado no acesso são determinados pela estimativa de quantidade de linhas que cada operação vai acessar, esta estimativa é chamada

» Read more

Plano de execução ruim? Turbine o Otimizador.

Estatísticas dinâmicas

A “Feature Dynamic Sampling” foi disponibilizada a partir da versão Oracle 9iR2. O equívoco mais comum é que ela pode ser utilizada para substituir as estatísticas coletadas pelo pacote DBMS_STATS. O objetivo dela é dar mais opções estatísticas ao otimizador, ela é usada quando as estatísticas regulares não são suficientes para obter estimativas de cardinalidade de boa qualidade.   Durante

» Read more

SESSION_CACHED_CURSORS: Será que você realmente conhece a importância desse parâmetro?

session cursor cached

Existe muita confusão com relação a definição dos parâmetros OPEN_CURSORS e SESSION_CACHED_CURSORS, o entendimento da função de cada um deles é fundamental para o ajuste de desempenho da instância Oracle. Nesse post vamos abordar o papel de cada um desses parâmetros e como eles influenciam o desempenho das instruções SQL, vamos ver num arquivo trace 10046 o parâmetro SESSION_CACHED_CURSORS em

» Read more

Qual a melhor opção para o parâmetro optimizer_mode?

parameter optimizer_mode

O Otimizador da Oracle foi desenvolvido para executar as instruções SQL de forma rápida, as primeiras versões do Otimizador eram baseadas em regras, porem esse modelo demonstrou ser ineficaz pois o banco de dados e muito volátil e os dados sofrem modificações constantemente. Atualmente o Otimizador baseado em regra não é mais suportado, em seu lugar temos o Otimizador baseado em

» Read more

Plano de execução com custo baixo tem melhor desempenho, Mito ou Fato?

Mito Custo versus Desempenho

Alguns profissionais acreditam que se um plano de execução tem um custo baixo ele será melhor que um plano de execução cujo custo seja maior, essa afirmação é um mito ou fato? Nesse artigo vamos fazer uma simulação de uma instrução SQL que vai ser executada duas vezes com planos de execução diferentes e custos diferentes e vamos comparar os

» Read more

Por que utilizar “Explain Plan” ou “AUTOTRACE” no processo de “Tuning” pode ser uma má idéia?

Explain Plan or Autotrace

Os comandos do Oracle “Explain Plan” e “AUTOTRACE” são muito utilizados para gerar o plano de execução que o otimizador vai escolher para uma determinada instrução SQL. Porem nem sempre o plano de execução gerado por estes comandos correspondem ao plano que realmente será executado pelo otimizador do banco de dados, a única maneira de descobrir qual plano de execução será

» Read more