Performance :: >= <= versus Between ???

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP

Pessoal, boa tarde.

Em se tratando de performance de um select na base, gostaria de saber qual dos dois comandos abaixo é o mais performático e, se possível o seu porquê?

- Between
- maior ou igual menor ou igual

Ex:

Selecionar tudo

select *
from tabela
where dt_fim between '01-JUL-05' and '05-JUL-05'
ou

Selecionar tudo

select *
from tabela
where dt_fim >= '01-JUL-05' and dt_fim <='05-JUL-05'
Muito obrigado.
Abraço,

Trevisolli
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5018
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Que eu saiba, os dois são iguais em matéria de performance.

O que pode mudar aí é a presença de um índice no campo! (se não tiver, ele é obrigado a fazer um full-scan)
Rpizao
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 22
Registrado em: Qua, 06 Jul 2005 11:33 am
Localização: RJ

Eu não tenho certeza, mas até pela metodologia adotada aq na empresa, me parece que o between por ser uma função é mais lenta (exige mais processamento do servidor) mas não tenho como confirmar.
Apesar de ser mais prático e mais limpo o between recomenda-se usar o <=.
Abraços...até.
Rafael. :-o
Kaizzaer
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Qui, 17 Jun 2004 12:15 pm
Localização: Rio de Janeiro - RJ

Olá a todos, fiz alguns testes aqui na empresa e verifiquei que praticamente não há diferença de performance entre as duas formas citadas. Isto deve ocorrer por conta do otimizador de consultas do oracle.
Ele é responsável por resolver a melhor forma de executar uma determinada consulta. Sendo assim o otimizador sempre irá gerar a mesma resposta para as consultas citadas acima, fazendo assim, que tenham performance semelhante.

Abs... :D
asarmento
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Qui, 27 Abr 2006 8:50 pm
Localização: Salvador - BA
Álvaro Sarmento
Analista de Sistemas
Unitech - Tecnologia de Informação
www.unitech.com.br

trevisolli,

Estive com um problema semelhante ao seu!

Percebi que houve uma melhora de desempenho usando o '>= e <=', mas nada posso afirmar!

Infelizmente o código fica maior, mas preferi usá-lo mesmo assim.

Atenciosamente,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Bing [Bot], Google [Bot] e 14 visitantes