Não utilize o between

[ad#texto]
Essa é para aqueles que são desenvolvedores Oracle, principalmente no PL/SQL, suponha que alguém lhe pergunte como consultar uma tabela levando em consideração um intervalo de data, como você faria isso?

Seria algo semelhante a isso:

select *
from suaTabela
where campoData between '010210' and '010310';

Se você faz como o exemplo acima lhe digo que você acertou e errou ao mesmo tempo.

Acertou pois esse é a forma mais elegante de realizar a tarefa.

Você errou pois essa forma mina a performance da sua consulta, está certo que uma consulta tão simples como o exemplo acima essa quebra de performance nem seria percebida pelo Oracle, porém em um ambiente crítico com uma consulta mais complexa isso pode comprometer todo o sucesso da sua aplicação.

O PL/SQL da Oracle possui uma séria de truques, para o caso acima o ideal é que a consulta seja realizada da seguinte forma:

select *
from suaTabela
where campoData < '010210'
 and campoData > '010310';

Notaram que a forma acima embora mais “feia” é a maneira que irá refletir mais performance para o Oracle.

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.