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

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

Qual a importância das estatísticas de tabelas para o Otimizador?

Estatísticas de tabelas

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

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

Quando devemos criar um índice composto?

Índice composto

É comum encontrar aplicações cujas tabelas possuem muitos índices unitários (uma coluna) e nenhum índice composto (duas ou mais colunas), as ultimas versões do banco de dados Oracle já trata essa deficiência de estrutura das aplicações com o uso da operação “BITMAP AND” no plano de execução, mas em alguns casos a utilização do índice composto continua sendo a melhor

» 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
1 3 4 5 6