Um dos grandes desafios no tema de Base de Dados esta relacionado com as estatísticas. Já abordei o tem em outros posts, como os links abaixo: https://m04m.com/2010/05/17/uma-breve-introducao-dos-componentes-do-motor-oracle-otimizador-por-custo/ https://m04m.com/2010/05/20/finalmente-o-cbo-que-nao-do-mc-donalds/ https://m04m.com/2010/04/08/estatisticas-de-sistema/ Uma das grandes confusões que há, é quando precisamos realizar testes com as estatísticas, porque realizar sobre um sistema em produção não parece ser boa ideía, … Continue lendo “Pending” Statistics – Como testar sem estragar?
Categoria: CBO
SQL Profiles ….
Ajustando um dos métodos que estavam no post anterior sobre SQL Profiles, segue uma procedure para aplicar um profile, baseado num sql_id, para aplicar com sucesso, siga os passos abaixo: Tenha em mãos o SQLID "problemático"; Tenha em mãos o SQLID com as hints que encontraste para que a query tenha uma melhor performance; Execute … Continue lendo SQL Profiles ….
Clustering Factor Again ….
Em outro post, vimos o funcionamento do clustering factor e suas artimanhas. Neste preparei um exemplo interessante ..... Nosso teste agora baseia-se em uma tabela que possui 11 mil linhas (dados aleatórios) e a partir dela criamos mais duas. A tabela original possui duas colunas A e B, depois criamos duas tabelas (Teste1 e Teste2) … Continue lendo Clustering Factor Again ….
SQL Profiles
Existem muitas variáveis para que o Oracle obtenha o melhor plano de execução, mas por vezes isso não acontece, ai que começa a dor de cabeça. Os meios mais eficazes de garantir um plano de execução é através de um bom modelo de dados e contínuo trabalho com as estatísticas/histogramas, porém é muito raro encontrar implementações … Continue lendo SQL Profiles
BIND Variables, vilão ou herói?
Sempre levantamos a bandeira da utilização de bind variables como boa prática. No entanto, será que temos consciência de tudo o que cerca na utilização deste recurso? Vamos aos pontos chave: É verdade que as bind variables reduzem o hard parsing, já que há um compartilhamento de cursores. Isso é bom, pois reduz tempo de … Continue lendo BIND Variables, vilão ou herói?
CF este ilustre informante…
Imagine um select em que o filtro possa ser atendido por 2 ou mais índices, como o Oracle faz para escolher qual deverá usar? O CF têm a função de desempate quando mais de um índice atende a condição, optando sempre pelo de menor valor. Existem mais 2 conceitos importantes para o entendimento do CF, … Continue lendo CF este ilustre informante…
Finalmente o CBO que não é o do Mc Donalds :)
Tentei colocar de forma sucinta o funcionamento do Cost-Based Optimizer (CBO), sem entrar em muitos detalhes técnicos, o objetivo é fazer entender o funcionamento do CBO. Execution Plan: Para falarmos de CBO é importante o conceito de execution plan, que nada mais é um caminho estruturado para se chegar aos dados que a query pretende. … Continue lendo Finalmente o CBO que não é o do Mc Donalds 🙂
Uma breve introdução dos componentes do motor Oracle (Otimizador por Custo):
Após um tempo finalmente, consegui dar continuidade ao blog 🙂 :). E aqui vai uma pré para o post mais aprofundado para do CBO que virá. Quando um comando SQL chega ao engine oracle, quatro elementos são importantes para a execução do mesmo: • Parser • Optimizer • Row source generator • SQL executor Parser: … Continue lendo Uma breve introdução dos componentes do motor Oracle (Otimizador por Custo):
Estatísticas de Sistema
Por muitas vezes, as estatísticas de sistema, são esquecidas. Qual a finalidade deste recurso? Como são coletadas? Quando devemos atualiza-las? Estas estatísticas são importantes para o CBO (Cost Based Optimizer), na qual, o permite ponderar os planos de exceuções e custos com melhor exatidão. Quando há uma coleta destas informações, os seguintes parâmetros passam a … Continue lendo Estatísticas de Sistema
Db_file_multiblock_read_count
Este parâmetro define a quantidade de blocos que poderão ser lidos numa única operação de I/O, característico das operações de Full Table Scans e Index Full Scan. Quanto mais alto o valor, menor será o número de operações I/O, no entanto, em CBO, dará mais tendência para os Full Table Scan, por isso é muito … Continue lendo Db_file_multiblock_read_count