Como o Hybrid Histogram contribui para deixar o Otimizador mais inteligente?

Hybrid Histograms

O Otimizador do Oracle cria planos de execução baseado nas estatísticas dos objetos no banco de dados, a qualidade destas informações é decisiva na precisão das estimativas de acesso das operações no plano de execução e consequentemente determinam o desempenho das instruções SQL. Os Histogramas são parte destas estatísticas e até a versão 11g existiam somente 2 tipos (FREQUENCY e

» Read more

Por que minha consulta esta alternando planos de execução diferentes?

Bind Histograms

A utilização de BIND VARIABLE é muito recomendada quando enviamos instruções SQL para execução no banco de dados Oracle pois esta prática evita que o Otimizador tenha que realizar um quantidade excessiva de HARD PARSE o que evita o consumo desnecessário de CPU. No entanto quando utilizamos BIND VARIABLE num filtro da cláusula WHERE cuja coluna da tabela possui um

» Read more

Como uma consulta pode ter alto desempenho sem dados estatísticos?

DYNAMIC SAMPLIMG

O Otimizador do Oracle cria planos de execução com alta performance baseado nas estatísticas dos objetos no banco de dados, com estas informações ele consegue fazer estimativas de acesso para cada uma das operações no plano de execução e a qualidade destas estimativas é que determina o desempenho das instruções SQL, mas o que acontece quando algum objeto envolvido na

» Read more

Histogramas: Quando devemos evitá-los?

não use histogramas

O uso de histogramas ajuda o Otimizador a ser mais preciso no cálculo da cardinalidade das operações no plano de execução, mas existem situações em que não devemos utilizá-los, pois eles vão induzir o Otimizador a criar planos de execução de baixa qualidade. Neste artigo vamos mostrar uma destas situações onde o Otimizador realiza um cálculo de cardinalidade muito ruim,

» Read more

Histogramas: Qual importância deles?

histogramas

No artigo “Por que o Otimizador criou um plano de execução ineficiente?” elencamos algumas condições que levam o Otimizador a gerar um plano de execução ineficiente, neste artigo vamos abordar com mais detalhes um desses tópicos, como a repetição de dados não uniformes em uma coluna da tabela podem influenciar de maneira negativa o Otimizador.       Repetição de

» Read more

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