Elis,

Até simulei sua situação aqui e no teste que fiz, não anexei o plano de
execução, mas pode crer usou o indice.

-- essa query deve ser parecida com a sua
select sum(attribute_value) from lb_country_load where reference_year = 2008
and reference_month = 03

-- aqui eu criei um indice na tabela
create index teste on lb_country_load (reference_year, reference_month)

-- executei essa query e usou indice.
select sum(attribute_value) from lb_country_load where reference_year = 2008
and reference_month = 03

Eu tentaria 2 coisas:

1.) rodar a estatística do schema para ver e o oracle muda o plano
2.) forçar o uso do indice com um hint.

Espero que isso ajude.

[]s
Eriovaldo



2009/4/21 Elis Azevedo Nery <elisn...@yahoo.com>

>
>
> Ricardo, eu quero fazer um sum dentro de um filtro que tem indice. No meu
> caso quero somar um valor para o ano 2008. Se eu não faço o sum ele utiliza
> o indice por ano, quando coloco o sum ele faz full. Deu para entender?
>
> Obrigadão.
> Elis
>
> ________________________________
> De: Ricardo Portilho Proni 
> <rportilhopr...@yahoo.com.br<rportilhoproni%40yahoo.com.br>
> >
> Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>
> Enviadas: Terça-feira, 21 de Abril de 2009 14:12:06
> Assunto: Re: [oracle_br] Indice
>
> Se você está fazendo um SUM, o Oracle precisa ler todos os registros para
> conseguir finalizar a soma. O mesmo ocorreria com AVG, por exemplo.
> Já que precisa ler todos os registros, não terá vantagem em ler o índice.
>
> É o comportamento normal do Banco.
>
> Se você precisasse contar todas as letras de um livro, também não faria
> pelo índice. Teria que ler o livro todo.
>
> Se você precisa realmente otimizar este SUM, crie uma Materialized View
> dele.
>
> Bom feriado !
>
> --- Em ter, 21/4/09, Elis Azevedo Nery <elisn...@yahoo. com> escreveu:
>
> De: Elis Azevedo Nery <elisn...@yahoo. com>
> Assunto: [oracle_br] Indice
> Para: oracle...@yahoogrup os.com.br
> Data: Terça-feira, 21 de Abril de 2009, 11:45
>
> Bom dia pessoal!
>
> Tenho uma tabela com milhares de registros. Esta tabela tem um índice, mas
> quando eu faço sum de alguma coluna, o Oracle prefere fazer full do que
> utilizar o índice e a query acaba por ficar super-lenta.
> O que vocês sugerem? Colocar no indice as colunas utilizadas pelo sum?
>
> Obrigada
> Elis
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbusca dos.yahoo. com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> ------------ --------- --------- ------
>
> ------------ --------- --------- --------- --------- --------- -
> >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> inteira responsabilidade de seus remetentes.
> Acesse: http://www.mail- archive.com/ oracle_br@ yahoogrupos. com.br/
> ------------ --------- --------- --------- --------- --------- -
> >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure
> » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
> http://www.oraclebr .com.br/
> ------------ --------- --------- --------- --------- --------- - Links do
> Yahoo! Grupos
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbusca dos.yahoo. com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> Veja quais são os assuntos do momento no Yahoo! +Buscados
> http://br.maisbuscados.yahoo.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a