RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Rafael Almeida Milanez
se puder mandar a versão do banco ajuda bastante
 
voce pode força-lo a usar o indice, nesse caso talvez o otimizador optou por 
não utiliza-lo 



De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Francisco 
Garcia
Enviada em: quinta-feira, 3 de janeiro de 2008 09:12
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Índice X volume de registros



Pessoal
estou com um problema de desempenho de query. 

Uma tabela faz join em outra tabela através da chave
estrangeira.

select campo1, campo2 from tab_a,tab_b
where tab_a.cod_a = tab_b.cod_a

tab_b.cod_a é a chave estrangeira de tab_a.cod_a 

Os índices estão criados tudo como manda o figurino.
Analyze feito.

Mas ao fazer o join acima não pega o índice na tab_b.
Eu criei as mesmas tabelas em outro banco, mas com 5%
do volume da tabela do banco de produção. E o join
funcionou perfeitamente. O DBA alega q o volume
influencia na utilização de índices. tab_a tem
1.298.603 registros, tab_b tem 31.013.198 registros. 
Tem saída pra esse problema?

Obrigado a todos.



Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!
http://br.mail.yahoo.com/ http://br.mail.yahoo.com/ 


 


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



RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Leandro Ortigão Pereira
Vc pode usar um hint na sua consulta para forçar a utilização do índice.

Ex: SELECT /*+ index(t1 t1_abc) index(t2 t2_abc) */ COUNT(*)
FROM t1, t2
WHERE t1.col1 = t2.col1;

 

At.

 

Leandro

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Francisco Garcia
Enviada em: quinta-feira, 3 de janeiro de 2008 08:12
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Índice X volume de registros

 

Pessoal
estou com um problema de desempenho de query. 

Uma tabela faz join em outra tabela através da chave
estrangeira.

select campo1, campo2 from tab_a,tab_b
where tab_a.cod_a = tab_b.cod_a

tab_b.cod_a é a chave estrangeira de tab_a.cod_a 

Os índices estão criados tudo como manda o figurino.
Analyze feito.

Mas ao fazer o join acima não pega o índice na tab_b.
Eu criei as mesmas tabelas em outro banco, mas com 5%
do volume da tabela do banco de produção. E o join
funcionou perfeitamente. O DBA alega q o volume
influencia na utilização de índices. tab_a tem
1.298.603 registros, tab_b tem 31.013.198 registros. 
Tem saída pra esse problema?

Obrigado a todos.



Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
armazenamento!
http://br.mail.yahoo.com/

 



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



Re: RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Francisco Garcia
A versão é 8.1.7.0.0

--- Rafael Almeida Milanez
[EMAIL PROTECTED] escreveu:

 se puder mandar a versão do banco ajuda bastante
  
 voce pode força-lo a usar o indice, nesse caso
 talvez o otimizador optou por não utiliza-lo 
 
 
 
 De: oracle_br@yahoogrupos.com.br
 [mailto:[EMAIL PROTECTED] Em nome de
 Francisco Garcia
 Enviada em: quinta-feira, 3 de janeiro de 2008 09:12
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Índice X volume de registros
 
 
 
 Pessoal
 estou com um problema de desempenho de query. 
 
 Uma tabela faz join em outra tabela através da chave
 estrangeira.
 
 select campo1, campo2 from tab_a,tab_b
 where tab_a.cod_a = tab_b.cod_a
 
 tab_b.cod_a é a chave estrangeira de tab_a.cod_a 
 
 Os índices estão criados tudo como manda o figurino.
 Analyze feito.
 
 Mas ao fazer o join acima não pega o índice na
 tab_b.
 Eu criei as mesmas tabelas em outro banco, mas com
 5%
 do volume da tabela do banco de produção. E o join
 funcionou perfeitamente. O DBA alega q o volume
 influencia na utilização de índices. tab_a tem
 1.298.603 registros, tab_b tem 31.013.198 registros.
 
 Tem saída pra esse problema?
 
 Obrigado a todos.
 
 
 
 Abra sua conta no Yahoo! Mail, o único sem limite de
 espaço para armazenamento!
 http://br.mail.yahoo.com/
 http://br.mail.yahoo.com/ 
 
 
  
 
 
 [As partes desta mensagem que não continham texto
 foram removidas]
 
 



  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/


Re: RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Francisco Garcia
Utilizei e para o Count(*) ele usou os índices.
Depois utilizei a função SUM ,ele não utilizou.

Obrigado pela ajuda.
--- Leandro Ortigão Pereira [EMAIL PROTECTED]
escreveu:

 Vc pode usar um hint na sua consulta para forçar a
 utilização do índice.
 
 Ex: SELECT /*+ index(t1 t1_abc) index(t2 t2_abc) */
 COUNT(*)
 FROM t1, t2
 WHERE t1.col1 = t2.col1;
 
  
 
 At.
 
  
 
 Leandro
 
  
 
 De: oracle_br@yahoogrupos.com.br
 [mailto:[EMAIL PROTECTED] Em
 nome de Francisco Garcia
 Enviada em: quinta-feira, 3 de janeiro de 2008 08:12
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Índice X volume de registros
 
  
 
 Pessoal
 estou com um problema de desempenho de query. 
 
 Uma tabela faz join em outra tabela através da chave
 estrangeira.
 
 select campo1, campo2 from tab_a,tab_b
 where tab_a.cod_a = tab_b.cod_a
 
 tab_b.cod_a é a chave estrangeira de tab_a.cod_a 
 
 Os índices estão criados tudo como manda o figurino.
 Analyze feito.
 
 Mas ao fazer o join acima não pega o índice na
 tab_b.
 Eu criei as mesmas tabelas em outro banco, mas com
 5%
 do volume da tabela do banco de produção. E o join
 funcionou perfeitamente. O DBA alega q o volume
 influencia na utilização de índices. tab_a tem
 1.298.603 registros, tab_b tem 31.013.198 registros.
 
 Tem saída pra esse problema?
 
 Obrigado a todos.
 
 
 
 Abra sua conta no Yahoo! Mail, o único sem limite de
 espaço para
 armazenamento!
 http://br.mail.yahoo.com/
 
  
 
 
 
 [As partes desta mensagem que não continham texto
 foram removidas]
 
 



  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/


Re: RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Francisco Garcia
Olha , deu mais de 25 minutos. 
Acho q não atende o usuário.

--- Andre Santos [EMAIL PROTECTED]
escreveu:

 Francisco
 
 Mas ficou ruim o tempo de resposta?
 Pode ser que, nas condições encontradas, o melhor
 seja não utilizar o índice
 mesmo... (é uma possibilidade).
 
 [ ]
 
 André
 
 
 Em 03/01/08, Francisco Garcia [EMAIL PROTECTED]
 escreveu:
 
A versão é 8.1.7.0.0
 
  --- Rafael Almeida Milanez
  [EMAIL PROTECTED]
 rmilanez%40makrosouthamerica.com
  escreveu:
 
   se puder mandar a versão do banco ajuda bastante
  
   voce pode força-lo a usar o indice, nesse caso
   talvez o otimizador optou por não utiliza-lo
  
   
  
   De: oracle_br@yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br
   [mailto:oracle_br@yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br]
  Em nome de
   Francisco Garcia
   Enviada em: quinta-feira, 3 de janeiro de 2008
 09:12
   Para: oracle_br@yahoogrupos.com.br
 oracle_br%40yahoogrupos.com.br
   Assunto: [oracle_br] Índice X volume de
 registros
  
  
  
   Pessoal
   estou com um problema de desempenho de query.
  
   Uma tabela faz join em outra tabela através da
 chave
   estrangeira.
  
   select campo1, campo2 from tab_a,tab_b
   where tab_a.cod_a = tab_b.cod_a
  
   tab_b.cod_a é a chave estrangeira de tab_a.cod_a
  
   Os índices estão criados tudo como manda o
 figurino.
   Analyze feito.
  
   Mas ao fazer o join acima não pega o índice na
   tab_b.
   Eu criei as mesmas tabelas em outro banco, mas
 com
   5%
   do volume da tabela do banco de produção. E o
 join
   funcionou perfeitamente. O DBA alega q o volume
   influencia na utilização de índices. tab_a tem
   1.298.603 registros, tab_b tem 31.013.198
 registros.
  
   Tem saída pra esse problema?
  
   Obrigado a todos.
  
  
  
   Abra sua conta no Yahoo! Mail, o único sem
 limite de
   espaço para armazenamento!
   http://br.mail.yahoo.com/
   http://br.mail.yahoo.com/
  
  
  
  
  
   [As partes desta mensagem que não continham
 texto
   foram removidas]
  
  
 
  Abra sua conta no Yahoo! Mail, o único sem limite
 de espaço para
  armazenamento!
  http://br.mail.yahoo.com/
 
  
 
 
 
 [As partes desta mensagem que não continham texto
 foram removidas]
 
 



  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/


Re: RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Domos§
Você tem que usar hint para usar oindice que vc quer, ma sua consulta
não tem nenhuma condição de data ou coisa assim?

Veja da forma que esta passando o sql, ele vai ler todos os registros
da tabela a.

Caso queria um material sobre tunning, me escreva que passo a vc.

[]´s

Falconi

--- Em oracle_br@yahoogrupos.com.br, Francisco Garcia [EMAIL PROTECTED]
escreveu

 A versão é 8.1.7.0.0
 
 --- Rafael Almeida Milanez
 [EMAIL PROTECTED] escreveu:
 
  se puder mandar a versão do banco ajuda bastante
   
  voce pode força-lo a usar o indice, nesse caso
  talvez o otimizador optou por não utiliza-lo 
  
  
  
  De: oracle_br@yahoogrupos.com.br
  [mailto:[EMAIL PROTECTED] Em nome de
  Francisco Garcia
  Enviada em: quinta-feira, 3 de janeiro de 2008 09:12
  Para: oracle_br@yahoogrupos.com.br
  Assunto: [oracle_br] Índice X volume de registros
  
  
  
  Pessoal
  estou com um problema de desempenho de query. 
  
  Uma tabela faz join em outra tabela através da chave
  estrangeira.
  
  select campo1, campo2 from tab_a,tab_b
  where tab_a.cod_a = tab_b.cod_a
  
  tab_b.cod_a é a chave estrangeira de tab_a.cod_a 
  
  Os índices estão criados tudo como manda o figurino.
  Analyze feito.
  
  Mas ao fazer o join acima não pega o índice na
  tab_b.
  Eu criei as mesmas tabelas em outro banco, mas com
  5%
  do volume da tabela do banco de produção. E o join
  funcionou perfeitamente. O DBA alega q o volume
  influencia na utilização de índices. tab_a tem
  1.298.603 registros, tab_b tem 31.013.198 registros.
  
  Tem saída pra esse problema?
  
  Obrigado a todos.
  
  
  
  Abra sua conta no Yahoo! Mail, o único sem limite de
  espaço para armazenamento!
  http://br.mail.yahoo.com/
  http://br.mail.yahoo.com/ 
  
  
   
  
  
  [As partes desta mensagem que não continham texto
  foram removidas]
  
  
 
 
 
   Abra sua conta no Yahoo! Mail, o único sem limite de espaço
para armazenamento!
 http://br.mail.yahoo.com/





Re: RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Francisco Garcia
Se alguém souber de algum link na web onde eu possa
pegar algumas dicas eu agradeço.

--- Leandro Ortigão Pereira [EMAIL PROTECTED]
escreveu:

 Vc pode usar um hint na sua consulta para forçar a
 utilização do índice.
 
 Ex: SELECT /*+ index(t1 t1_abc) index(t2 t2_abc) */
 COUNT(*)
 FROM t1, t2
 WHERE t1.col1 = t2.col1;
 
  
 
 At.
 
  
 
 Leandro
 
  
 
 De: oracle_br@yahoogrupos.com.br
 [mailto:[EMAIL PROTECTED] Em
 nome de Francisco Garcia
 Enviada em: quinta-feira, 3 de janeiro de 2008 08:12
 Para: oracle_br@yahoogrupos.com.br
 Assunto: [oracle_br] Índice X volume de registros
 
  
 
 Pessoal
 estou com um problema de desempenho de query. 
 
 Uma tabela faz join em outra tabela através da chave
 estrangeira.
 
 select campo1, campo2 from tab_a,tab_b
 where tab_a.cod_a = tab_b.cod_a
 
 tab_b.cod_a é a chave estrangeira de tab_a.cod_a 
 
 Os índices estão criados tudo como manda o figurino.
 Analyze feito.
 
 Mas ao fazer o join acima não pega o índice na
 tab_b.
 Eu criei as mesmas tabelas em outro banco, mas com
 5%
 do volume da tabela do banco de produção. E o join
 funcionou perfeitamente. O DBA alega q o volume
 influencia na utilização de índices. tab_a tem
 1.298.603 registros, tab_b tem 31.013.198 registros.
 
 Tem saída pra esse problema?
 
 Obrigado a todos.
 
 
 
 Abra sua conta no Yahoo! Mail, o único sem limite de
 espaço para
 armazenamento!
 http://br.mail.yahoo.com/
 
  
 
 
 
 [As partes desta mensagem que não continham texto
 foram removidas]
 
 



  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/


Re: RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Andre Santos
Francisco

Mas ficou ruim o tempo de resposta?
Pode ser que, nas condições encontradas, o melhor seja não utilizar o índice
mesmo... (é uma possibilidade).

[ ]

André


Em 03/01/08, Francisco Garcia [EMAIL PROTECTED] escreveu:

   A versão é 8.1.7.0.0

 --- Rafael Almeida Milanez
 [EMAIL PROTECTED] rmilanez%40makrosouthamerica.com
 escreveu:

  se puder mandar a versão do banco ajuda bastante
 
  voce pode força-lo a usar o indice, nesse caso
  talvez o otimizador optou por não utiliza-lo
 
  
 
  De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  [mailto:oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br]
 Em nome de
  Francisco Garcia
  Enviada em: quinta-feira, 3 de janeiro de 2008 09:12
  Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  Assunto: [oracle_br] Índice X volume de registros
 
 
 
  Pessoal
  estou com um problema de desempenho de query.
 
  Uma tabela faz join em outra tabela através da chave
  estrangeira.
 
  select campo1, campo2 from tab_a,tab_b
  where tab_a.cod_a = tab_b.cod_a
 
  tab_b.cod_a é a chave estrangeira de tab_a.cod_a
 
  Os índices estão criados tudo como manda o figurino.
  Analyze feito.
 
  Mas ao fazer o join acima não pega o índice na
  tab_b.
  Eu criei as mesmas tabelas em outro banco, mas com
  5%
  do volume da tabela do banco de produção. E o join
  funcionou perfeitamente. O DBA alega q o volume
  influencia na utilização de índices. tab_a tem
  1.298.603 registros, tab_b tem 31.013.198 registros.
 
  Tem saída pra esse problema?
 
  Obrigado a todos.
 
 
 
  Abra sua conta no Yahoo! Mail, o único sem limite de
  espaço para armazenamento!
  http://br.mail.yahoo.com/
  http://br.mail.yahoo.com/
 
 
 
 
 
  [As partes desta mensagem que não continham texto
  foram removidas]
 
 

 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
 armazenamento!
 http://br.mail.yahoo.com/

 



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



Re: RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Andre Santos
Francisco

Também pode depender da forma como foram coletadas as estatísticas...
principalmente se foram gerados histogramas (ref. às colunas indexadas).

Você tem o comando de coleta das estatísticas? Se puder, poste aqui no
grupo.

Há outras alternativas mais radicais (que tem seus pontos ruins também):
   a- Gerar um índices que contenham, além das colunas chaves (do
relacionamento), também as colunas que devem ser retornadas no SELECT.
   b- Criar uma view materializada com essa consulta (join).

[ ]

André


Em 03/01/08, Francisco Garcia [EMAIL PROTECTED] escreveu:

   Olha , deu mais de 25 minutos.
 Acho q não atende o usuário.

 --- Andre Santos [EMAIL PROTECTED]andre.psantos.ti%40gmail.com
 
 escreveu:

  Francisco
 
  Mas ficou ruim o tempo de resposta?
  Pode ser que, nas condições encontradas, o melhor
  seja não utilizar o índice
  mesmo... (é uma possibilidade).
 
  [ ]
 
  André
 
 
  Em 03/01/08, Francisco Garcia [EMAIL PROTECTED]pako_br%40yahoo.com.br
 
  escreveu:
  
   A versão é 8.1.7.0.0
  
   --- Rafael Almeida Milanez
   [EMAIL PROTECTED] rmilanez%40makrosouthamerica.com
  rmilanez%40makrosouthamerica.com
   escreveu:
  
se puder mandar a versão do banco ajuda bastante
   
voce pode força-lo a usar o indice, nesse caso
talvez o otimizador optou por não utiliza-lo
   

   
De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  oracle_br%40yahoogrupos.com.br
[mailto:oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.br
  oracle_br%40yahoogrupos.com.br]
   Em nome de
Francisco Garcia
Enviada em: quinta-feira, 3 de janeiro de 2008
  09:12
Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
  oracle_br%40yahoogrupos.com.br
Assunto: [oracle_br] Índice X volume de
  registros
   
   
   
Pessoal
estou com um problema de desempenho de query.
   
Uma tabela faz join em outra tabela através da
  chave
estrangeira.
   
select campo1, campo2 from tab_a,tab_b
where tab_a.cod_a = tab_b.cod_a
   
tab_b.cod_a é a chave estrangeira de tab_a.cod_a
   
Os índices estão criados tudo como manda o
  figurino.
Analyze feito.
   
Mas ao fazer o join acima não pega o índice na
tab_b.
Eu criei as mesmas tabelas em outro banco, mas
  com
5%
do volume da tabela do banco de produção. E o
  join
funcionou perfeitamente. O DBA alega q o volume
influencia na utilização de índices. tab_a tem
1.298.603 registros, tab_b tem 31.013.198
  registros.
   
Tem saída pra esse problema?
   
Obrigado a todos.
   
   
   
Abra sua conta no Yahoo! Mail, o único sem
  limite de
espaço para armazenamento!
http://br.mail.yahoo.com/
http://br.mail.yahoo.com/
   
   
   
   
   
[As partes desta mensagem que não continham
  texto
foram removidas]
   
   
  
   Abra sua conta no Yahoo! Mail, o único sem limite
  de espaço para
   armazenamento!
   http://br.mail.yahoo.com/
  
  
  
 
 
  [As partes desta mensagem que não continham texto
  foram removidas]
 
 

 Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
 armazenamento!
 http://br.mail.yahoo.com/

 



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



Re: RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico Francisco Garcia
TEm cláusula de data na primeira tabela, mesmo assim o
desempenho é ruim. 
Eu estou pensando em utilizar subquery na primeira
tabela, onde retorno somente os códigos e depois faço
o join na segunda tabela.
--- Domos§ [EMAIL PROTECTED] escreveu:

 Você tem que usar hint para usar oindice que vc
 quer, ma sua consulta
 não tem nenhuma condição de data ou coisa assim?
 
 Veja da forma que esta passando o sql, ele vai ler
 todos os registros
 da tabela a.
 
 Caso queria um material sobre tunning, me escreva
 que passo a vc.
 
 []´s
 
 Falconi
 
 --- Em oracle_br@yahoogrupos.com.br, Francisco
 Garcia [EMAIL PROTECTED]
 escreveu
 
  A versão é 8.1.7.0.0
  
  --- Rafael Almeida Milanez
  [EMAIL PROTECTED] escreveu:
  
   se puder mandar a versão do banco ajuda bastante

   voce pode força-lo a usar o indice, nesse caso
   talvez o otimizador optou por não utiliza-lo 
   
   
   
   De: oracle_br@yahoogrupos.com.br
   [mailto:[EMAIL PROTECTED] Em nome de
   Francisco Garcia
   Enviada em: quinta-feira, 3 de janeiro de 2008
 09:12
   Para: oracle_br@yahoogrupos.com.br
   Assunto: [oracle_br] Índice X volume de
 registros
   
   
   
   Pessoal
   estou com um problema de desempenho de query. 
   
   Uma tabela faz join em outra tabela através da
 chave
   estrangeira.
   
   select campo1, campo2 from tab_a,tab_b
   where tab_a.cod_a = tab_b.cod_a
   
   tab_b.cod_a é a chave estrangeira de tab_a.cod_a
 
   
   Os índices estão criados tudo como manda o
 figurino.
   Analyze feito.
   
   Mas ao fazer o join acima não pega o índice na
   tab_b.
   Eu criei as mesmas tabelas em outro banco, mas
 com
   5%
   do volume da tabela do banco de produção. E o
 join
   funcionou perfeitamente. O DBA alega q o volume
   influencia na utilização de índices. tab_a tem
   1.298.603 registros, tab_b tem 31.013.198
 registros.
   
   Tem saída pra esse problema?
   
   Obrigado a todos.
   
   
   
   Abra sua conta no Yahoo! Mail, o único sem
 limite de
   espaço para armazenamento!
   http://br.mail.yahoo.com/
   http://br.mail.yahoo.com/ 
   
   

   
   
   [As partes desta mensagem que não continham
 texto
   foram removidas]
   
   
  
  
  
Abra sua conta no Yahoo! Mail, o único sem
 limite de espaço
 para armazenamento!
  http://br.mail.yahoo.com/
 
 
 
 



  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/


Re: RES: [oracle_br] Índice X volume de registros

2008-01-03 Por tôpico jlchiappa
Colega, vou comentar várias msgs nesta aqui. Seguinte :

- versão de banco : o banco 8.1.7.0 é pré-histórico, e se vc tiver
acesso ao menos de consulta no metalink (é o menos que se pede numa
governança de banco minimamente profissional) vc verá que a lista de
bugs corrigidos nas versões posteriores não é pequena - tranquilamente
vc PODE estar caindo num dos bugs de CBO, e/ou de consumo excessivo de
CPU e/ou contenção que abundavam nos releases iniciais do 8ir3,
recomendaria portanto aplicação de patch 8.1.7.4

- estatísticas : absolutamente ** NÃO BASTA ** se dizer ah, analyze
feito, vc TEM que se certificar que a coleta está fresca (ie, foi
feita IMEDIATAMENTE após a última alteração de monta nas tabelas -
cansei de ver sites que coletavam estats só aos Sábados (digamos), aí
as alterações de Seg a Sex não eram refletidas -), deve checar se foi
feita de modo adequado ( ie : para as colunas com distribuição
irregular de valores foram criados HISTOGRAMAS), ver se coletaram-se
estatísticas nos ÍNDICES além das tabelas, que tal coleta fez **
COMPUTE ** em TODAs as tabelas/índices aonde isso foi viável OK ?

- ajuste dos parâmetros CBO : na inha apresentação no ENPO sobre o
assunto eu insisti neste ponto - de NADA ADIANTA vc ter estatística se
os parâmetros de ajuste do CBO não estiverem ok... No banco 8i , como
é o seu caso, isso é simplesmente *** CRÍTICO ***, em especial os
parâmetros OPTIMIZER_INDEX_COST_ADJ e OPTIMIZER_INDEX_CACHING , eles
(junto com outros, mas no 8i principalmente eles) é que dão o
parâmetro pro CBO de até que ponto é vantajoso se usar o índice ou
não SE eles estão default, via de regra aumenta mito a chance
de problemas com índice não usado, recomendo ** FORTEMENTE ** esse
check, ENORME chance de ser esse o seu problema 
 Lembro também que no 8i várias operações (tais como os planos de HASH
) tem que ser habilitadas via parâmetro xxx_ENABLED, fatalmente isso
pode levar à planos não-ótimos se não estiverem habilitados.

- ajuste dos parâmetros de I/O e alocação de RAM : ao contrário do 9i
em diante, no 8i *** não há *** a figura de auto-tunning de SGA nem de
PGA, se isso não estiver ajustado a performance pode sofrer, um plano
que preveja JOIN via SORT tranquilamente pode ser descartado por causa
de sort_area_size pequena Idem pros params de I/O (em especial o 
db_file_multiblock_read_count e o HASH_MULTIBLOCK_IO_COUNT),
influenciam pesadamente...

- volume de dados : sim, o seu DBA está certo em afirmar que o volume
entra no cálculo, *** MAS *** como eu disse acima os params
OPTIMIZER_nnn são players importantíssimos no 8i, não é NADA incomum
que o ajuste deles compense a diferença de volume

- SQL : em cima do seu SQL 

select campo1, campo2 from tab_a,tab_b
 where tab_a.cod_a = tab_b.cod_a;

== SE realmente há índices tanto na tabela A quanto na tabela B para
essa coluna COD_A, os ínices estão válidos, o datatype da coluna nas
duas tabelas é idêntico, etc, não vejo problema nenhum no SQL em si,
em tudo isso sendo positivo o meu palpite é mesmo que o otimizador não
está percebendo a diferença de volumes, aí é mesmo fatores externos
ao SQL, tal como  os que citei acima : tente fazer todas as
verificações que citei. para vc se certificar que o acesso via índice
é possível, para testes vc poderia colocar um HINT, forçando o SQL a
tentar acesso via índice, se isso resultar num plano diferente fica
comprovado que é mesmo o CBO mal-ajustado/configurado... Aliás,
falando-se em planos, pra vc ter certeza do que está ocorrendo pode
ser ** muito ** esclarecedor também vc fazer um trace + tkprof tanto
do SQL original quanto do SQL com o hint, e também um trace 10053, que
mostra os planos que o CBO descartou...

- referências/material de estudo sobre Tunning e técnicas que citei :
são os manuais de Tuning da Oracle (online em http://tahiti.oracle.com
), os bons sites sobre Oracle (tais como
http://skdba.blogspot.com/2006/08/10053-to-rescue-again.html ,
http://jonathanlewis.wordpress.com/ , www.dbasupport.com ,
http://asktom.oracle.com , http://seilerwerks.wordpress.com/ ,
www.centrexcc.com, www.hotsos.com , www.orapub.com , etc), e os bons
livros, tais como :

Expert Oracle Database Architecture: 9i and 10g Programming
Techniques and Solutions, Thomas Kyte, Editora Apress

Effective Oracle by Design , Thomas Kyte, Editora Oracle Press

Oracle SQL High-Performance Tuning (2nd Edition), Guy Harrison,
Editora Prentice Hall PTR

Practical Oracle 8i: Building Efficient Databases, Jonathan Lewis,
Editora Addison-Wesley 

Cost-Based Oracle Fundamentals,  Jonathan Lewis, Editora Apress

Oracle Wait Interface: A Practical Guide to Performance Diagnostics 
Tuning, 
  Richmond Shee, Kirtikumar Deshpande and K Gopalakrishnan, Editora
McGraw-Hill/Osborne
  
[]s

 Chiappa
 

--- Em oracle_br@yahoogrupos.com.br, Francisco Garcia [EMAIL PROTECTED]
escreveu

 TEm cláusula de data na primeira tabela, mesmo assim o
 desempenho é ruim. 
 Eu estou pensando em utilizar subquery na primeira