Re: RES: [oracle_br] Uso do indice
No primeiro plano, vc acessa via indice porque a unica coluna recuperada é da tabela executor. No segundo , é acesso full para recuperar as duas colunas. Lembre-se que não existe restrição para a c.id_cod_postal. > Aí está os planos de execução. > > select e.id_executor > from cod_postal c >,executor e >where c.id_cod_postal = e.codigo_postal > Query Plan > > > SELECT STATEMENT[CHOOSE] Cost=97 Rows=2291 Bytes=27492 >NESTED LOOPS > TABLE ACCESS FULL EXECUTOR [ANALYZED] > INDEX UNIQUE SCAN COD_POSTAL_PK [ANALYZED] > > > select e.id_executor, c.localidade >from cod_postal c >,executor e >where c.id_cod_postal = e.codigo_postal > Query Plan > > > SELECT STATEMENT[CHOOSE] Cost=235 Rows=2291 Bytes=54984 >HASH JOIN > TABLE ACCESS FULL EXECUTOR [ANALYZED] > TABLE ACCESS FULL COD_POSTAL [ANALYZED] > > Renan Medeiros escreveu:Pq vc nao coloca os planos de execução de cada > comando aqui no email ? > Ficará mais fácil de se analisar/entender a situação. > > > > > > Oi Alex! > > > > Ainda estou confusa! Quando eu retorno no select somente colunas da > > tabela executor, o indice da tabela codigo postal é utilizado. Tudo bem > > que a tabela executor é pequena e nesta ele faz full mesmo, mas a de > > código postal é gigante e o custo vai lá no céu! > > > > Assim usa o indice da codigo_postal: > > select e.id_executor > > from cod_postal c > > ,executor e > > where c.id_cod_postal = e.codigo_postal > > > > > > > > mas assim não: > > > > select e.id_executor, c.localidade > > from cod_postal c > > ,executor e > > where c.id_cod_postal = e.codigo_postal > > > > Obrigada pela resposta > > Elis > > > > "Alex Fernando Kirsten (CESUP)" escreveu: > > Oi > > > > Existe uma explicação lógica sim. Uma de suas tabelas deve ser > muito > > pequena e o Oracle não esta utilizando índice pq a quantidade de > > registros > > recuperados é alta em relação a quantidade de registros da tabela. Vc > > pode > > forçar a utilização do índice com o uso de um hint na sua consulta, > mas > > provavelmente não iria adiantar muito. > > > > Outro motivo possível é que seu índice está desabilitado. > > > > []s > > > > > > > > Alex Fernando Kirsten > > > > Oracle 9i Database Administrator Certified Professional > > > > Cetil Sistemas > > > > Email: [EMAIL PROTECTED] > > > > > > > >_ > > > > De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] > Em > > nome de Elis Azevedo Nery > > Enviada em: sexta-feira, 11 de novembro de 2005 07:29 > > Para: oracle_br@yahoogrupos.com.br > > Assunto: [oracle_br] Uso do indice > > > > > > > > Olá! > > > > Tenho este select simples com join de duas tabelas: > > > > > > select e.id_executor, c.localidade > > from cod_postal c > > ,executor e > > where c.id_cod_postal = e.codigo_postal > > > > > > Se eu coloco no select colunas da tabela cod_postal, não utiliza o > indice > > existente nesta tabela e acaba por fazer full. Alguém tem uma > explicação > > lógica para isto? > > Já analisei as tabelas e os indices. > > > > Obrigada > > Elis Nery > > > > > > - > > Yahoo! Acesso Grátis: Internet rápida e grátis. > > Instale o discador agora! > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > -- > > Atenção! As mensagens deste grupo são de acesso público e de inteira > > responsabilidade de seus remetentes. > > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > > > > > --_
Re: RES: RES: [oracle_br] Uso do indice
Colega, PMFJI, mas isso é ** insuficiente ** pra dizer qquer coisa que não seja palpite puro : como já dito N vezes aqui na lista (agora serão N+1 vezes), quando vc coleta estatísticas vc está usando otimização por Custo (o CBO), e pra se usar eficientemente o CBO, além de coletar estatísticas, vc tem que ** configurar ** corretamente os parâmetros do CBO, em especial o optimizer_index_cost_adj e o optimizer_index_caching, pois sem isso p CBO vai "pensar" que bloco acessado por table scan é o mesmo custo que acesso por índice, E que a chance de encontrar blocos de índices no cache é ZERO, ambas as coisas ** NÂO ** verdadeiras em sistemas pequenos/OLTP, como parece ser o seu caso (o que vc não diz, mas se deduz pela cardinalidade das tabelas). A regra é clara, usar CBO ** sem ** ajustar os parâmetros adequados é meio caminho andado pra maus resultados, já que o default é inapropriado na maioria dos casos. ==> Então a recomendação número 1 é essa, vc (ou o DBA, mais provavelmente) pode ter como referência o clássico paper "The Search for Intelligent Life in the Cost-Based Optimizer", de Tim Gorman, é um pouco antigo mas ainda muito válido. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Elis Azevedo Nery <[EMAIL PROTECTED]> escreveu > Olá Salvio! > > Obrigada pela tentativa, mas não deu certo, mas talvez seja este o caminho. > Quando eu coloco no select qualquer coluna que não seja a coluna do indice da tabela cod_postal, não usa o indice. Veja os planos: > > select e.id_executor, c.id_cod_postal > from cod_postal c >,executor e > where c.id_cod_postal = e.codigo_postal > Query Plan > > SELECT STATEMENT[CHOOSE] Cost=97 Rows=2291 Bytes=27492 > NESTED LOOPS > TABLE ACCESS FULL EXECUTOR [ANALYZED] > INDEX UNIQUE SCAN COD_POSTAL_PK [ANALYZED] > > select e.id_executor, c.id_cod_postal, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > Query Plan > > SELECT STATEMENT[CHOOSE] Cost=235 Rows=2291 Bytes=54984 > HASH JOIN > TABLE ACCESS FULL EXECUTOR [ANALYZED] > TABLE ACCESS FULL COD_POSTAL [ANALYZED] > > Salvio Padlipskas <[EMAIL PROTECTED]> escreveu: > Olá Elis, > > Vamos tentar ajudar. O que ocorre é que na 1a. consulta > a coluna deve fazer parte de um dos indices( então a procura > é apenas no indice), porém na 2a. > consulta não, o que faz com o o otimizador tenha que > pesquisar nos blocos da tabela. > > > Seria isso o que vc tem por ai ?? > > [ ]'s > Salvio > > > > -Mensagem original- > De: Elis Azevedo Nery [mailto:[EMAIL PROTECTED] > Enviada em: sexta-feira, 11 de novembro de 2005 10:18 > Para: oracle_br@yahoogrupos.com.br > Assunto: Re: RES: [oracle_br] Uso do indice > > > Aí está os planos de execução. > > select e.id_executor > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > Query Plan > > > SELECT STATEMENT[CHOOSE] Cost=97 Rows=2291 Bytes=27492 > NESTED LOOPS > TABLE ACCESS FULL EXECUTOR [ANALYZED] > INDEX UNIQUE SCAN COD_POSTAL_PK [ANALYZED] > > > select e.id_executor, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > Query Plan > > > SELECT STATEMENT[CHOOSE] Cost=235 Rows=2291 Bytes=54984 > HASH JOIN > TABLE ACCESS FULL EXECUTOR [ANALYZED] > TABLE ACCESS FULL COD_POSTAL [ANALYZED] > > Renan Medeiros <[EMAIL PROTECTED]> escreveu:Pq vc nao coloca os > planos de execução de cada comando aqui no email ? > Ficará mais fácil de se analisar/entender a situação. > > > > > > Oi Alex! > > > > Ainda estou confusa! Quando eu retorno no select somente colunas da > > tabela executor, o indice da tabela codigo postal é utilizado. Tudo bem > > que a tabela executor é pequena e nesta ele faz full mesmo, mas a de > > código postal é gigante e o custo vai lá no céu! > > > > Assim usa o indice da codigo_postal: > > select e.id_executor > > from cod_postal c > > ,executor e > > where c.id_cod_postal = e.codigo_postal > > > > > > > > mas assim não: > > > > select e.id_executor, c.localidade > > from cod_postal c > > ,executor e > > where c.id_cod_postal = e.codigo_postal &
Re: RES: RES: [oracle_br] Uso do indice
Olá Salvio! Obrigada pela tentativa, mas não deu certo, mas talvez seja este o caminho. Quando eu coloco no select qualquer coluna que não seja a coluna do indice da tabela cod_postal, não usa o indice. Veja os planos: select e.id_executor, c.id_cod_postal from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Query Plan SELECT STATEMENT[CHOOSE] Cost=97 Rows=2291 Bytes=27492 NESTED LOOPS TABLE ACCESS FULL EXECUTOR [ANALYZED] INDEX UNIQUE SCAN COD_POSTAL_PK [ANALYZED] select e.id_executor, c.id_cod_postal, c.localidade from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Query Plan SELECT STATEMENT[CHOOSE] Cost=235 Rows=2291 Bytes=54984 HASH JOIN TABLE ACCESS FULL EXECUTOR [ANALYZED] TABLE ACCESS FULL COD_POSTAL [ANALYZED] Salvio Padlipskas <[EMAIL PROTECTED]> escreveu: Olá Elis, Vamos tentar ajudar. O que ocorre é que na 1a. consulta a coluna deve fazer parte de um dos indices( então a procura é apenas no indice), porém na 2a. consulta não, o que faz com o o otimizador tenha que pesquisar nos blocos da tabela. Seria isso o que vc tem por ai ?? [ ]'s Salvio -Mensagem original- De: Elis Azevedo Nery [mailto:[EMAIL PROTECTED] Enviada em: sexta-feira, 11 de novembro de 2005 10:18 Para: oracle_br@yahoogrupos.com.br Assunto: Re: RES: [oracle_br] Uso do indice Aí está os planos de execução. select e.id_executor from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Query Plan SELECT STATEMENT[CHOOSE] Cost=97 Rows=2291 Bytes=27492 NESTED LOOPS TABLE ACCESS FULL EXECUTOR [ANALYZED] INDEX UNIQUE SCAN COD_POSTAL_PK [ANALYZED] select e.id_executor, c.localidade from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Query Plan SELECT STATEMENT[CHOOSE] Cost=235 Rows=2291 Bytes=54984 HASH JOIN TABLE ACCESS FULL EXECUTOR [ANALYZED] TABLE ACCESS FULL COD_POSTAL [ANALYZED] Renan Medeiros <[EMAIL PROTECTED]> escreveu:Pq vc nao coloca os planos de execução de cada comando aqui no email ? Ficará mais fácil de se analisar/entender a situação. > Oi Alex! > > Ainda estou confusa! Quando eu retorno no select somente colunas da > tabela executor, o indice da tabela codigo postal é utilizado. Tudo bem > que a tabela executor é pequena e nesta ele faz full mesmo, mas a de > código postal é gigante e o custo vai lá no céu! > > Assim usa o indice da codigo_postal: > select e.id_executor > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > > > mas assim não: > > select e.id_executor, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > Obrigada pela resposta > Elis > > "Alex Fernando Kirsten (CESUP)" escreveu: > Oi > > Existe uma explicação lógica sim. Uma de suas tabelas deve ser muito > pequena e o Oracle não esta utilizando índice pq a quantidade de > registros > recuperados é alta em relação a quantidade de registros da tabela. Vc > pode > forçar a utilização do índice com o uso de um hint na sua consulta, mas > provavelmente não iria adiantar muito. > > Outro motivo possível é que seu índice está desabilitado. > > []'s > > > > Alex Fernando Kirsten > > Oracle 9i Database Administrator Certified Professional > > Cetil Sistemas > > Email: [EMAIL PROTECTED] > > > >_ > > De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em > nome de Elis Azevedo Nery > Enviada em: sexta-feira, 11 de novembro de 2005 07:29 > Para: oracle_br@yahoogrupos.com.br > Assunto: [oracle_br] Uso do indice > > > > Olá! > > Tenho este select simples com join de duas tabelas: > > > select e.id_executor, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > > Se eu coloco no select colunas da tabela cod_postal, não utiliza o indice > existente nesta tabela e acaba por fazer full. Alguém tem uma explicação > lógica para isto? > Já analisei as tabelas e os indices. > > Obrigada > Elis Nery > > > - > Yahoo! Acesso Grátis: Internet rápida e grátis. > Instale o discador agora! > > [As partes desta mensagem que não continham texto foram removidas] > > > > -
RES: RES: [oracle_br] Uso do indice
Olá Elis, Vamos tentar ajudar. O que ocorre é que na 1a. consulta a coluna deve fazer parte de um dos indices( então a procura é apenas no indice), porém na 2a. consulta não, o que faz com o o otimizador tenha que pesquisar nos blocos da tabela. Seria isso o que vc tem por ai ?? [ ]'s Salvio -Mensagem original- De: Elis Azevedo Nery [mailto:[EMAIL PROTECTED] Enviada em: sexta-feira, 11 de novembro de 2005 10:18 Para: oracle_br@yahoogrupos.com.br Assunto: Re: RES: [oracle_br] Uso do indice Aí está os planos de execução. select e.id_executor from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Query Plan SELECT STATEMENT[CHOOSE] Cost=97 Rows=2291 Bytes=27492 NESTED LOOPS TABLE ACCESS FULL EXECUTOR [ANALYZED] INDEX UNIQUE SCAN COD_POSTAL_PK [ANALYZED] select e.id_executor, c.localidade from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Query Plan SELECT STATEMENT[CHOOSE] Cost=235 Rows=2291 Bytes=54984 HASH JOIN TABLE ACCESS FULL EXECUTOR [ANALYZED] TABLE ACCESS FULL COD_POSTAL [ANALYZED] Renan Medeiros <[EMAIL PROTECTED]> escreveu:Pq vc nao coloca os planos de execução de cada comando aqui no email ? Ficará mais fácil de se analisar/entender a situação. > Oi Alex! > > Ainda estou confusa! Quando eu retorno no select somente colunas da > tabela executor, o indice da tabela codigo postal é utilizado. Tudo bem > que a tabela executor é pequena e nesta ele faz full mesmo, mas a de > código postal é gigante e o custo vai lá no céu! > > Assim usa o indice da codigo_postal: > select e.id_executor > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > > > mas assim não: > > select e.id_executor, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > Obrigada pela resposta > Elis > > "Alex Fernando Kirsten (CESUP)" escreveu: > Oi > > Existe uma explicação lógica sim. Uma de suas tabelas deve ser muito > pequena e o Oracle não esta utilizando índice pq a quantidade de > registros > recuperados é alta em relação a quantidade de registros da tabela. Vc > pode > forçar a utilização do índice com o uso de um hint na sua consulta, mas > provavelmente não iria adiantar muito. > > Outro motivo possível é que seu índice está desabilitado. > > []'s > > > > Alex Fernando Kirsten > > Oracle 9i Database Administrator Certified Professional > > Cetil Sistemas > > Email: [EMAIL PROTECTED] > > > >_ > > De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em > nome de Elis Azevedo Nery > Enviada em: sexta-feira, 11 de novembro de 2005 07:29 > Para: oracle_br@yahoogrupos.com.br > Assunto: [oracle_br] Uso do indice > > > > Olá! > > Tenho este select simples com join de duas tabelas: > > > select e.id_executor, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > > Se eu coloco no select colunas da tabela cod_postal, não utiliza o indice > existente nesta tabela e acaba por fazer full. Alguém tem uma explicação > lógica para isto? > Já analisei as tabelas e os indices. > > Obrigada > Elis Nery > > > - > Yahoo! Acesso Grátis: Internet rápida e grátis. > Instale o discador agora! > > [As partes desta mensagem que não continham texto foram removidas] > > > > > -- > Atenção! As mensagens deste grupo são de acesso público e de inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > --__ > ___ > Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 > > > > > > Yahoo! Grupos, um serviço oferecido por: > > > > PUBLICIDADE > > > > > > > >_ > > Links do Yahoo! Grupos > > * Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/oracle_br/ > > * Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED] > > > * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Re: RES: [oracle_br] Uso do indice
Aí está os planos de execução. select e.id_executor from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Query Plan SELECT STATEMENT[CHOOSE] Cost=97 Rows=2291 Bytes=27492 NESTED LOOPS TABLE ACCESS FULL EXECUTOR [ANALYZED] INDEX UNIQUE SCAN COD_POSTAL_PK [ANALYZED] select e.id_executor, c.localidade from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Query Plan SELECT STATEMENT[CHOOSE] Cost=235 Rows=2291 Bytes=54984 HASH JOIN TABLE ACCESS FULL EXECUTOR [ANALYZED] TABLE ACCESS FULL COD_POSTAL [ANALYZED] Renan Medeiros <[EMAIL PROTECTED]> escreveu:Pq vc nao coloca os planos de execução de cada comando aqui no email ? Ficará mais fácil de se analisar/entender a situação. > Oi Alex! > > Ainda estou confusa! Quando eu retorno no select somente colunas da > tabela executor, o indice da tabela codigo postal é utilizado. Tudo bem > que a tabela executor é pequena e nesta ele faz full mesmo, mas a de > código postal é gigante e o custo vai lá no céu! > > Assim usa o indice da codigo_postal: > select e.id_executor > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > > > mas assim não: > > select e.id_executor, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > Obrigada pela resposta > Elis > > "Alex Fernando Kirsten (CESUP)" escreveu: > Oi > > Existe uma explicação lógica sim. Uma de suas tabelas deve ser muito > pequena e o Oracle não esta utilizando índice pq a quantidade de > registros > recuperados é alta em relação a quantidade de registros da tabela. Vc > pode > forçar a utilização do índice com o uso de um hint na sua consulta, mas > provavelmente não iria adiantar muito. > > Outro motivo possível é que seu índice está desabilitado. > > []s > > > > Alex Fernando Kirsten > > Oracle 9i Database Administrator Certified Professional > > Cetil Sistemas > > Email: [EMAIL PROTECTED] > > > >_ > > De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em > nome de Elis Azevedo Nery > Enviada em: sexta-feira, 11 de novembro de 2005 07:29 > Para: oracle_br@yahoogrupos.com.br > Assunto: [oracle_br] Uso do indice > > > > Olá! > > Tenho este select simples com join de duas tabelas: > > > select e.id_executor, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > > Se eu coloco no select colunas da tabela cod_postal, não utiliza o indice > existente nesta tabela e acaba por fazer full. Alguém tem uma explicação > lógica para isto? > Já analisei as tabelas e os indices. > > Obrigada > Elis Nery > > > - > Yahoo! Acesso Grátis: Internet rápida e grátis. > Instale o discador agora! > > [As partes desta mensagem que não continham texto foram removidas] > > > > > -- > Atenção! As mensagens deste grupo são de acesso público e de inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > --__ > ___ > Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 > > > > > > Yahoo! Grupos, um serviço oferecido por: > > > > PUBLICIDADE > > > > > > > >_ > > Links do Yahoo! Grupos > > * Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/oracle_br/ > > * Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED] > > > * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > Serviço do Yahoo!. > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > -- > Atenção! As mensagens deste grupo são de acesso público e de inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > -
Re: RES: [oracle_br] Uso do indice
Pq vc nao coloca os planos de execução de cada comando aqui no email ? Ficará mais fácil de se analisar/entender a situação. > Oi Alex! > > Ainda estou confusa! Quando eu retorno no select somente colunas da > tabela executor, o indice da tabela codigo postal é utilizado. Tudo bem > que a tabela executor é pequena e nesta ele faz full mesmo, mas a de > código postal é gigante e o custo vai lá no céu! > > Assim usa o indice da codigo_postal: > select e.id_executor > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > > > mas assim não: > > select e.id_executor, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > Obrigada pela resposta > Elis > > "Alex Fernando Kirsten (CESUP)" escreveu: > Oi > > Existe uma explicação lógica sim. Uma de suas tabelas deve ser muito > pequena e o Oracle não esta utilizando índice pq a quantidade de > registros > recuperados é alta em relação a quantidade de registros da tabela. Vc > pode > forçar a utilização do índice com o uso de um hint na sua consulta, mas > provavelmente não iria adiantar muito. > > Outro motivo possível é que seu índice está desabilitado. > > []s > > > > Alex Fernando Kirsten > > Oracle 9i Database Administrator Certified Professional > > Cetil Sistemas > > Email: [EMAIL PROTECTED] > > > >_ > > De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em > nome de Elis Azevedo Nery > Enviada em: sexta-feira, 11 de novembro de 2005 07:29 > Para: oracle_br@yahoogrupos.com.br > Assunto: [oracle_br] Uso do indice > > > > Olá! > > Tenho este select simples com join de duas tabelas: > > > select e.id_executor, c.localidade > from cod_postal c > ,executor e > where c.id_cod_postal = e.codigo_postal > > > Se eu coloco no select colunas da tabela cod_postal, não utiliza o indice > existente nesta tabela e acaba por fazer full. Alguém tem uma explicação > lógica para isto? > Já analisei as tabelas e os indices. > > Obrigada > Elis Nery > > > - > Yahoo! Acesso Grátis: Internet rápida e grátis. > Instale o discador agora! > > [As partes desta mensagem que não continham texto foram removidas] > > > > > -- > Atenção! As mensagens deste grupo são de acesso público e de inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > --__ > ___ > Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 > > > > > > Yahoo! Grupos, um serviço oferecido por: > > > > PUBLICIDADE > > > > > > > >_ > > Links do Yahoo! Grupos > > * Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/oracle_br/ > > * Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED] > > > * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > Serviço do Yahoo!. > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > -- > Atenção! As mensagens deste grupo são de acesso público e de inteira > responsabilidade de seus remetentes. > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > > --_ > Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 > > > Yahoo! Grupos, um serviço oferecido por:PUBLICIDADE > var lrec_target="_blank";var lrec_URL=new > Array();lrec_URL[1]="http://br.rd.yahoo.com/SIG=12fek55a1/M=380335.7481167.8369105.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1131712606/A=3107499/R=0/id=flashurl/SIG=12c39trgo/*http://ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis.com";var > lrec_flashfile="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1107_lrec_hotelscom.swf?clickTAG=javascript:LRECopenWindow(1)";var > lrec_altURL="http://br.rd.yahoo.com/SIG=12fek55a1/M=380335.7481167.8369105.2369893/D=b
Re: RES: [oracle_br] Uso do indice
Oi Alex! Ainda estou confusa! Quando eu retorno no select somente colunas da tabela executor, o indice da tabela codigo postal é utilizado. Tudo bem que a tabela executor é pequena e nesta ele faz full mesmo, mas a de código postal é gigante e o custo vai lá no céu! Assim usa o indice da codigo_postal: select e.id_executor from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal mas assim não: select e.id_executor, c.localidade from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Obrigada pela resposta Elis "Alex Fernando Kirsten (CESUP)" <[EMAIL PROTECTED]> escreveu: Oi Existe uma explicação lógica sim. Uma de suas tabelas deve ser muito pequena e o Oracle não esta utilizando índice pq a quantidade de registros recuperados é alta em relação a quantidade de registros da tabela. Vc pode forçar a utilização do índice com o uso de um hint na sua consulta, mas provavelmente não iria adiantar muito. Outro motivo possível é que seu índice está desabilitado. []s Alex Fernando Kirsten Oracle 9i Database Administrator Certified Professional Cetil Sistemas Email: [EMAIL PROTECTED] _ De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Elis Azevedo Nery Enviada em: sexta-feira, 11 de novembro de 2005 07:29 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Uso do indice Olá! Tenho este select simples com join de duas tabelas: select e.id_executor, c.localidade from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Se eu coloco no select colunas da tabela cod_postal, não utiliza o indice existente nesta tabela e acaba por fazer full. Alguém tem uma explicação lógica para isto? Já analisei as tabelas e os indices. Obrigada Elis Nery - Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ ___ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE <http://br.rd.yahoo.com/SIG=12fo9e189/M=380335.7481167.8369105.2369893/D=brc lubs/S=2137114689:HM/Y=BR/EXP=1131712298/A=3107499/R=2/id=noscript/SIG=12c39 trgo/*http:/ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis. com> <http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1107_lrec_hotelscom.gif> _ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do <http://br.yahoo.com/info/utos.html> Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --_ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Yahoo! Grupos, um serviço oferecido por:PUBLICIDADE var lrec_target="_blank";var lrec_URL=new Array();lrec_URL[1]="http://br.rd.yahoo.com/SIG=12fek55a1/M=380335.7481167.8369105.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1131712606/A=3107499/R=0/id=flashurl/SIG=12c39trgo/*http://ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis.com";var lrec_flashfile="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1107_lrec_hotelscom.swf?clickTAG=javascript:LRECopenWindow(1)";var lrec_altURL="http://br.rd.yahoo.com/SIG=12fek55a1/M=380335.7481167.8369105.2369893/D=brclubs/S=2137114689:HM/Y=BR/EXP=1131712606/A=3107499/R=1/id=altimg/SIG=12c39trgo/*http://ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis.com";var lrec_altimg="http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1107_lrec_hotelscom.gif";var lrec_width=300;var lrec_height=250; - Links do Yahoo! Grupos Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/gro
RES: [oracle_br] Uso do indice
Oi Existe uma explicação lógica sim. Uma de suas tabelas deve ser muito pequena e o Oracle não esta utilizando índice pq a quantidade de registros recuperados é alta em relação a quantidade de registros da tabela. Vc pode forçar a utilização do índice com o uso de um hint na sua consulta, mas provavelmente não iria adiantar muito. Outro motivo possível é que seu índice está desabilitado. []s Alex Fernando Kirsten Oracle 9i Database Administrator Certified Professional Cetil Sistemas Email: [EMAIL PROTECTED] _ De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Elis Azevedo Nery Enviada em: sexta-feira, 11 de novembro de 2005 07:29 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] Uso do indice Olá! Tenho este select simples com join de duas tabelas: select e.id_executor, c.localidade from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Se eu coloco no select colunas da tabela cod_postal, não utiliza o indice existente nesta tabela e acaba por fazer full. Alguém tem uma explicação lógica para isto? Já analisei as tabelas e os indices. Obrigada Elis Nery - Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --__ ___ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Yahoo! Grupos, um serviço oferecido por: PUBLICIDADE <http://br.rd.yahoo.com/SIG=12fo9e189/M=380335.7481167.8369105.2369893/D=brc lubs/S=2137114689:HM/Y=BR/EXP=1131712298/A=3107499/R=2/id=noscript/SIG=12c39 trgo/*http:/ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis. com> <http://br.i1.yimg.com/br.yimg.com/i/br/ads6/1107_lrec_hotelscom.gif> _ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do <http://br.yahoo.com/info/utos.html> Yahoo!. [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --_ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[oracle_br] Uso do indice
Olá! Tenho este select simples com join de duas tabelas: select e.id_executor, c.localidade from cod_postal c ,executor e where c.id_cod_postal = e.codigo_postal Se eu coloco no select colunas da tabela cod_postal, não utiliza o indice existente nesta tabela e acaba por fazer full. Alguém tem uma explicação lógica para isto? Já analisei as tabelas e os indices. Obrigada Elis Nery - Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --_ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html