Pular para o conteúdo

Regras Essenciais para Tuning Aplicacional em Banco de Dados Oracle – Regras de Ouro

Regras Essenciais para Tuning Aplicacional em Banco de Dados Oracle – Regras de Ouro

Olá senhores,

Abaixo alguma regrinhas para quem pretende principalmente realizar trabalhos de tuning 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

ramasine

ramasine

Comentário(s) da Comunidade

  1. Avatar de Eduardo Legatti

    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

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress