Nem só de estatísticas vive o Otimizador

Constraints

As estatísticas do banco de dados Oracle são a matéria prima que o Otimizador utiliza para gerar o plano de execução de uma instrução SQL, quanto melhor for a qualidade das estatísticas maior será o desempenho do plano de execução, porem o Otimizador trabalha com outras informações além das estatísticas, ele utiliza alguns parâmetros de inicialização do banco, ele pode

» Read more

4 técnicas para modificar um plano de execução sem alterar a instrução SQL

não alterar codigo

Para melhorar de desempenho das aplicações muitas vezes precisamos fazer alguns ajustes nas instruções SQL e em algumas situações não podemos alterar o código pois a aplicação é de terceiros ou apesar de ser um desenvolvimento interno da empresa os prazos para alteração são muito longos. Já faz algum tempo que modificar um plano de execução sem alterar a instrução

» Read more

Índice desordenado! Isto é possível?

indice desordenado

Quando executamos uma consulta no banco de dados Oracle e no seu plano de execução aparece a operação INDEX RANGE SCAN, os dados recuperados da tabela deveriam estar ordernados pela chave do índice, mas esta afirmação encontrada inclusive no manual da Oracle nem sempre é verdadeira. Esta premissa é muito importante pois a utilização da claúsula ORDER BY na consulta

» Read more

SQL Monitor: Como monitorar consultas rápidas?

sql monitor

A partir da versão 11g o Oracle Database disponibiliza um recurso fantástico chamado SQL Monitor que possibilita a visualização de uma infinidade de informações sobre a execução de uma instrução SQL, tanto para instruções encerradas como para instruções que ainda estão em execução, é possível acessar esse recurso de forma gráfica através do Oracle Cloud Control e SQLDeveloper ou em formato texto

» Read more

Você conhece alguma ferramenta para comparar plano de execução?

Compare execution plan

Existem situações em que precisamos comparar dois planos de execução para identificar suas diferenças, quando o plano de execução é simples conseguimos realizar essa tarefa inspecionando visualmente os dois planos gerados pelo Otimizador, mas se o plano de execução é mais complexo essa tarefa pode se tornar bem difícil. Este artigo apresenta um recurso disponível no SQL Developer que permite

» Read more

Uma ferramenta que facilita a leitura do plano de execução

Execution plan order

Alguns aspectos na leitura do plano de execução não são tão simples e requerem um pouco de prática, um desses aspectos é determinar em que ordem as operações são executadas, já publicamos um artigo que orienta como identificar essa ordem, agora vamos realizar alguns testes com um script (autor: Adrian Billington) que mostra o plano de execução no mesmo formato

» Read more

NESTED LOOP ou HASH JOIN? Qual a melhor opção para junção de tabelas?

Table Join

O NESTED LOOP e o HASH JOIN não são as únicas opções utilizadas pelo Otimizador do Oracle para fazer a junção de linhas de duas tabelas, mas são as opções mais utilizadas. Neste artigo vamos explorar um pouco como funcionam essas operações e verificar qual delas é a melhor opção para o Otimizador. Vamos começar respondendo a questão que também

» Read more

Por que minha consulta não esta usando o índice?

Cost Base Optimizer

Existem muitas razões pelas quais o Otimizador do Oracle Database escolhe não utilizar um índice de uma tabela, algumas são bem conhecidas outras nem tanto, neste artigo vamos analisar uma consulta que aparentemente deveria utilizar um índice porem o Otimizador resolve fazer um “FULL TABLE SCAN” na tabela, esse caso especifico é bem comum e muitas vezes perdemos muito tempo

» Read more
1 2