Re: Res: Res: [oracle_br] Indice p/Ricardo
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/ - - - - ---
Res: Res: [oracle_br] Indice p/Ricardo
É 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/ - - - - - - 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]
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_br@yahoogrupos.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_br@yahoogrupos.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.maisbuscados.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.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
Res: [oracle_br] Indice p/Ricardo
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_br@yahoogrupos.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.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]