Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

csv2010

Otimizador Sybase ASE - Problema com índice

Recommended Posts

Bom dia a todos,

 

Gostaria da ajuda de vcs.

 

Tenho uma query que leva 30 minutos para ser executada. Ao analisar o query plan e o i/o statistics da query, verifiquei que o timizador escolheu fazer table scan na tabela que possui 260 mil registros, consumindo um alto logical reads.

logical reads: (regular=3925152 apf=0 total=3925152).

 

Verifiquei os índices da tabela e notei que não havia um índice adequado para está query, então criei o índice para atender essa query.

Porém ao executar novamente a query e analisar o plano de acesso vi que o otimizador continuava a fazer table scan ao invés de utilizar o índice criado.

 

Resolvi forçar o índice especificando-o na frente do nome da tabela na query. Com isso o otimizador passou a utilizar o índice, mas o logical reads diminuiu muito pouco, no entanto o tempo de execução caiu de 30 minutos para 1 minuto.

logical reads: (regular=312972 apf=0 total=312972)

 

O que não entendo é por que o otimizador não utiliza o índice criado e como pode ser tão mais rápido mesmo fazendo uma grande quantidade de logical reads?

 

A princípio pensei que fosse por estatística desatualizada, então rodei um update statistics para a tabela, mas não fez efeito.

 

Algúem tem alguma idéia do por que o otimizador não utiliza o índice sozinho?

 

Agradeço se algúem puder ajudar.

 

[ ]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Basicamente o Otimizador sempre vai verificar as estatísticas de consulta baseados nos dados da systatistics ou systabstats. Ele verifica também se todos os campos citados na sua consulta (SELECT) são atendidos pelo índice.

 

O que pode ocorrer quando o Otimizador não está escolhendo o melhor índice para a sua consulta é:

 

- Estatísticas da tabela e índice desatualizadas,

- Índice corrompido,

- Consulta baseada em campos não pertencentes ao indice.

 

Sugiro que você verifique um dos três itens que certamente encontrará a resposta para a sua dúvida.

 

Abraços!

 

Jorge Luiz da Silva

jlsilva01@yahoo.com.br

Certified DBA Sybase ASE 12.5

Blog Sybase em Português - http://www.jorgeinfo.net/syblog

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.