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

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

Por que o operador NOT EQUAL prejudica performance?

Operator Not Equal

As instruções SQL que utilizam NOT EQUAL na cláusula WHERE em base de dados Oracle não utilizam índice no plano de execução para acessar as linhas da tabela, em algumas situações essa limitação do Otimizador pode prejudicar o desempenho das instruções SQL. Nesse artigo vamos entender porque essa limitação existe e verificar quais alternativas podemos utilizar em nossa instrução SQL

» Read more

Como pode um plano de execução mudar quando não há alterações no banco?

estatísticas

Como pode um plano de execução mudar de repente, quando ninguém fez qualquer alteração no banco de dados? Por nenhuma mudança, queremos dizer que não houve alterações na estrutura das tabelas, não foram adicionados ou alterados índices, nenhuma mudança relativa a “Bind Peeking”, sem mudanças de parâmetros do banco, não houve aplicação novos patches ou upgrades, não houve criação de

» Read more

Quando usar os Function-Based Indexes?

Function-Based Indexes

Um dos problemas mais comuns encontrados num processo de tuning de instruções SQL são as operações FULL TABLE SCAN que muitas vezes são escolhidas pelo Otimizador por falta de opção já que não consegue utilizar um índice de uma determinada coluna pois o programador incluiu na cláusula WHERE uma função para essa coluna. A partir da versão Oracle 8i foi introduzido

» 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