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

Como modificar um plano de execução sem alterar a instrução SQL?

SQL Profile

Quando estamos realizando um trabalho de tuning SQL muitas vezes nos deparamos com situações em que não podemos alterar o código da aplicação pois esta pertence a terceiros. Essa limitação pode ser superada facilmente utilizando o recurso SQL PROFILE do banco Oracle, disponível a partir da versão 10g. Neste artigo vamos fazer uma demonstração de uma situação hipotética onde vamos utilizar

» 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

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 importância das estatísticas de colunas para o Otimizador?

Column statistics

O Otimizador baseado em custo (CBO) utiliza estatísticas para determinar o custo dos diversos planos de execução que ele produz para uma determinada instrução SQL e escolhe o plano com o menor custo para utilizar, portanto as informações estatísticas são cruciais na escolha do plano de execução e devem fornecer informações precisas e atualizadas para que o Otimizador consiga realizar

» Read more
1 2 3 4 5