GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Algumas Regras de Ouro..A quem interessar possa!

Olá senhores,

Abaixo alguma regrinhas para quem pretende principalmente realizar trabalhos de tunnig aplicacional..
Procuro segui-las sempre que desenvolvo esse tipo de trabalho!
Destacando que esses pontos servem apenas como “partida inicial” da análise!

1ª Regra

Deve existir uma igualdade entre todos os caracteres de uma cláusula sendo examinada e uma que já se encontra na shared pool;

Exemplo:

Select * from emp
é diferente de
SELECT * from emp

2ª Regra

Se bind variables são referenciadas, elas devem ter o mesmo nome nas cláusulas existentes;

Exemplo:
select * from emp where empid = :var1
é diferente de
select * from emp where empid = :var2

3ª Regra

Conheça os dados da aplicação. Verifique colunas com boa seletividade. Seletividade é o percentual de linhas na tabela que possuem o mesmo valor. Colunas com baixa seletividade são boas candidatas para índices;

4ª Regra

Colunas candidatas a índices são apenas aquelas que são mencionadas após WHERE e AND, em uma cláusula SQL;

5ª Regra

Independente do conteúdo de uma coluna possuir um grande intervalo de valores, não a use como índice se esta é sempre mencionada através do uso de uma função (exemplo, FLOOR ou ABS), ou manipulacão de string e conversão (exemplo, SUBSTR ou TO_NUMBER);

Exemplo: SELECT nm FROM empregado WHERE SUBSTR(nm,1,5) = ‘PEDRO’;

6ª Regra

Quando da utilização do otimizador baseado em custo, certifique-se que as tabelas estão analisadas, para obter estatísticas importantes que irão ajudar na seleção de índices que devem ser criados;

7ª Regra

Durante o processo de seleção das colunas para índices compostos, verifique aquelas colunas que são utilizadas no WHERE e AND juntas durante a aplicação. Se elas são utilizadas separadamente no WHERE e AND tanto quanto em conjunto, dois índices simples pode ser melhor;

8ª Regra

Um índice composto somente irá ser utilizado para satisfazer uma query quando a coluna mais acima do índice é mencionada no WHERE ou AND;

Exemplo:

Se existe um índice composto sobre a coluna1 e a coluna2 em uma determinada tabela, a primeira query irá utilizar o índice enquanto a segunda não:

select coluna3 from tabela where coluna1 >= 10;
select coluna3 from tabela where coluna2 >= 10;

Observação Importante:

Foi disponibilizado à partir do Oracle 9i uma forma de acesso (INDEX SKIP SCAN) que permite que um índice possa ser utilizado mesmo que as primeiras colunas do índice composto não tenham sido informadas na cláusula WHERE.

Ps: Comment enviado pelo Eduardo Legatti…Obrigado!!

Abraços

Share

You may also like...

5 Responses

  1. Olá Marcelo,

    Irei acrescentar apenas uma pequena informação ou correção quanto à 8ª regra. Foi disponibilizado à partir do Oracle 9i uma forma de acesso (INDEX SKIP SCAN) que permite que um índice possa ser utilizado mesmo que as primeiras colunas do índice composto não tenham sido informadas na cláusula WHERE.

    Abraços,

    Eduardo Legatti

  2. David disse:

    Grande Marcelão!
    Muito boa iniciativa com este Post, muito bom material, meus parabéns.

    Forte abraço!!!!

    David

  3. Ramasine disse:

    Obrigado Eduardo, vou registrar essa!!

  4. antonioDBA disse:

    Opa marcelo, tudo bom? Ótimo post amigo! Adorei as dicas!

    Grande abraço,

  5. Lílian Barroso disse:

    Dicas simples e extremamente valiosas.
    Mto bom.

    Lílian

Deixe um comentário

O seu endereço de e-mail não será publicado.