No segundo SELECT ele fez um Full Scan de Índice, apesar do nome, bem melhor
que Full Table Scan. O índice que deve existir na DIS_DESCRICAO foi suficiente
no segundo caso.
Tem índice na coluna do SUM? Pode colocar? Creio que pode ocorrer um Fast Full
Scan também para o SUM.
--- Em ter, 21/4/09, Elis Azevedo Nery escreveu:
De: Elis Azevedo Nery
Assunto: Res: Res: [oracle_br] Indice p/Ricardo
Para: oracle_br@yahoogrupos.com.br
Data: Terça-feira, 21 de Abril de 2009, 16:38
É isto:
Operation Optimizer Cost Cardinality Bytes Filter Predicates Query
SELECT STATEMENT ALL_ROWS 37779 27 513 SELECT
d.DIS_DESCRICAO,sum(DUP_ARE_EXP)
FROM EST_PUN_DET_UTI_PAR_07 d
where epp_cam_ano_ini_cam=2007
and d.ejv_num_ver=0
GROUP BY d.DIS_DESCRICAO
HASH(GROUP BY)
37779 27 513
TABLE ACCESS(FULL) EST.EST_PUN_DET_UTI_PAR_07 ANALYZED 37495 2782982 52876658
"EPP_CAM_ANO_INI_CAM"=2007 AND "D"."EJV_NUM_VER"=0
SELECT STATEMENT ALL_ROWS 5293 27 405 SELECT
d.DIS_DESCRICAO--,sum(DUP_ARE_EXP)
FROM EST_PUN_DET_UTI_PAR_07 d
where epp_cam_ano_ini_cam=2007
and d.ejv_num_ver=0
GROUP BY d.DIS_DESCRICAO
HASH(GROUP BY)
5293 27 405
INDEX(FAST FULL SCAN) EST.EPD_I ANALYZED 5009 2782982 41744730
EPP_CAM_ANO_INI_CAM=2007 AND "D"."EJV_NUM_VER"=0
De: Ricardo Portilho Proni
Para: oracle_br@yahoogrupos.com.br
Enviadas: Terça-feira, 21 de Abril de 2009 16:48:32
Assunto: Re: Res: [oracle_br] Indice p/Ricardo
Entendi, Está estranho.
Pode colocar os dois SELECTs com os EXPLAIN aqui?
Abraço !
--- Em ter, 21/4/09, Elis Azevedo Nery escreveu:
De: Elis Azevedo Nery
Assunto: Res: [oracle_br] Indice p/Ricardo
Para: oracle...@yahoogrup os.com.br
Data: Terça-feira, 21 de Abril de 2009, 13:21
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
Para: oracle...@yahoogrup os.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 escreveu:
De: Elis Azevedo Nery
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.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/
- - - - ---