Boa tarde pessoal,

 

Estou com uma dúvida...

 

Tenho um SELECT que estava +ou- assim

 

SELECT campo1, campo2, campo3

FROM (  SELECT campo1, campo2, campo3

                 FROM tabela1

                 UNION ALL

                 SELECT campo1, campo2, campo

                 FROM tabela2 ) a,

              ( SELECT campo1, campo2, campo3

                 FROM tabela3

                  WHERE campo4 IS NOT NULL ) b

WHERE a.campo1 = b.campo1

 

 

Bom... quando fazia os SELECTs separadamente eles retornavam valores, porém
quando rodava o SELECT por inteiro ele não retornava registro nenhum.
Conversando com o DBA vimos que as estatísticas da tabela estavam
muuuuuiiiitttoooooo defasadas... usamos um DBMS_STATS.GATHER e voltamos a
rodar e dessa vez funcionou... o que poderia ter ocorrido?

 

Pode ter acontecido algum problema por conta da estatísta? O índice poderia
estar com valores incorretos? Alguém tem idéia do que poderia ter
ocorrido???...

 

Aqui chegamos a conclusão que na verdade o Oracle se perdeu quando tentou
montar o plano de execução... mas eu estou um tanto quanto desacreditado com
relação a isso... uma coisa é demorar pra rodar e outra coisa é não retornar
nada como se não tivesse achado nada...



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

Responder a