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
  

Mensagemem Qua, 06 Jul 2005 2:15 pm

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: select *
from tabela
where dt_fim between '01-JUL-05' and '05-JUL-05'

ou

Ex: select *
from tabela
where dt_fim >= '01-JUL-05' and dt_fim <='05-JUL-05'

Muito obrigado.
Abraço,

Trevisolli
Trevisolli
Localização: Araraquara - SP

Mensagemem Qua, 06 Jul 2005 2:34 pm

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)
dr_gori
Localização: Portland, OR USA

Thomas F. G

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

Mensagemem Ter, 02 Ago 2005 5:45 pm

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
Rpizao
Localização: RJ

Mensagemem Qua, 12 Abr 2006 12:03 pm

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
Kaizzaer
Localização: Rio de Janeiro - RJ

Mensagemem Qui, 27 Abr 2006 9:21 pm

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,
asarmento
Localização: Salvador - BA

Álvaro Sarmento
Analista de Sistemas
Unitech - Tecnologia de Informação
www.unitech.com.br



Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Google [Bot] e 9 visitantes

cron