Utilizando not exists / exists ou not in / in no PL/SQL (Oracle)

[ad#texto]

Existe uma certa confusão no mundo Oracle sobre qual é mais rápido not exists / exists ou not in / in.

not exists ou not in?
not exists ou not in?

Porém essa é uma pergunta sem uma resposta direta e simples. Sabe porque? O Oracle utiliza um avançado e complexo sistema de estatítica que coleta em tempo real o modo de utilização das queries do seu banco de dados e dessa forma otimiza sua engine (em tempo de execução) para trabalhar de acordo com o seu próprio uso, ou seja, ele é mutante.

Assim para alguns desenvolvedores o not in / in pode ser mais rápido e para outros o not exists / exists pode ser melhor, vai depender do seu ambiente de produção e da sua implementação do Oracle.

Como faço para saber qual utilizar então? Simples, implementando e testando ambos os casos, essa é a melhor maneira de descobrir.

Em todo caso vou listar exemplos de uso de ambas as situações, você implementa, testa e verifica qual é o mais rápido e melhor para o seu uso.

  • not exist/exist:
select *
from tabelaA
where not exists (
                 select campoA from tabelaB 
                 where campoB = valor
                 )

ou

select *
from tabelaA
where exists (
             select campoA from tabelaB 
             where campoB = valor
             )
  • not in/in:
select *
from tabelaA
where not in (
             select campoA from tabelaB 
             where campoB = valor
             )

ou

select *
from tabelaA
where in ( 
          select campoA from tabelaB 
          where campoB = valor
         )

Descubra mais sobre ViamaisBLOG

Assine para receber nossas notícias mais recentes por e-mail.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.
ViamaisBLOG
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.